[435] 2021-08-21_序列化-Externalizable

文档创建者:s7ckTeam
浏览次数:9
最后更新:2025-01-16
2021-08-21_序列化-Externalizable - E x t e r n a l i z a b l e   a l u m m 0 x   a l u m m 0 x   2 0 2 1 - 0 8 - 2 1   # J a v a   , 2 5 E x t e r n a l i z a b l e S e r i a l i z a b l e v o i d   w r i t e E x t e r n a l ( O b j e c t O u t p u t   o u t )   t h r o w s   I O E x c e p t i o n ; v o i d   r e a d E x t e r n a l ( O b j e c t I n p u t   i n )   t h r o w s   I O E x c e p t i o n ,   C l a s s N o t F o u n d E x c e p t i o n ; / * *   C o p y r i g h t   ( c )   1 9 9 6 ,   2 0 0 4 ,   O r a c l e   a n d / o r   i t s   a f f i l i a t e s .   A l l   r i g h t s   r e s e r v e d . *   O R A C L E   P R O P R I E T A R Y / C O N F I D E N T I A L .   U s e   i s   s u b j e c t   t o   l i c e n s e   t e r m s . * * * * * * * * * * * * * * * * * * * * * / p a c k a g e   j a v a . i o ; i m p o r t   j a v a . i o . O b j e c t O u t p u t ; i m p o r t   j a v a . i o . O b j e c t I n p u t ; / * * *   O n l y   t h e   i d e n t i t y   o f   t h e   c l a s s   o f   a n   E x t e r n a l i z a b l e   i n s t a n c e   i s *   w r i t t e n   i n   t h e   s e r i a l i z a t i o n   s t r e a m   a n d   i t   i s   t h e   r e s p o n s i b i l i t y *   o f   t h e   c l a s s   t o   s a v e   a n d   r e s t o r e   t h e   c o n t e n t s   o f   i t s   i n s t a n c e s . * *   T h e   w r i t e E x t e r n a l   a n d   r e a d E x t e r n a l   m e t h o d s   o f   t h e   E x t e r n a l i z a b l e *   i n t e r f a c e   a r e   i m p l e m e n t e d   b y   a   c l a s s   t o   g i v e   t h e   c l a s s   c o m p l e t e *   c o n t r o l   o v e r   t h e   f o r m a t   a n d   c o n t e n t s   o f   t h e   s t r e a m   f o r   a n   o b j e c t *   a n d   i t s   s u p e r t y p e s .   T h e s e   m e t h o d s   m u s t   e x p l i c i t l y *   c o o r d i n a t e   w i t h   t h e   s u p e r t y p e   t o   s a v e   i t s   s t a t e .   T h e s e   m e t h o d s   s u p e r s e d e *   c u s t o m i z e d   i m p l e m e n t a t i o n s   o f   w r i t e O b j e c t   a n d   r e a d O b j e c t   m e t h o d s . < b r > * *   O b j e c t   S e r i a l i z a t i o n   u s e s   t h e   S e r i a l i z a b l e   a n d   E x t e r n a l i z a b l e *   i n t e r f a c e s .   O b j e c t   p e r s i s t e n c e   m e c h a n i s m s   c a n   u s e   t h e m   a s   w e l l .   E a c h *   o b j e c t   t o   b e   s t o r e d   i s   t e s t e d   f o r   t h e   E x t e r n a l i z a b l e   i n t e r f a c e .   I f *   t h e   o b j e c t   s u p p o r t s   E x t e r n a l i z a b l e ,   t h e   w r i t e E x t e r n a l   m e t h o d   i s   c a l l e d .   I f   t h e *   o b j e c t   d o e s   n o t   s u p p o r t   E x t e r n a l i z a b l e   a n d   d o e s   i m p l e m e n t *   S e r i a l i z a b l e ,   t h e   o b j e c t   i s   s a v e d   u s i n g
S e r i a l i z a b l e E x t e r n a l i z a b l e E x t e r n a l i z a b l e S e r i a l i z a b l e J V M E x t e r n a l i z a b l e *   O b j e c t O u t p u t S t r e a m .   < b r >   W h e n   a n   E x t e r n a l i z a b l e   o b j e c t   i s *   r e c o n s t r u c t e d ,   a n   i n s t a n c e   i s   c r e a t e d   u s i n g   t h e   p u b l i c   n o - a r g *   c o n s t r u c t o r ,   t h e n   t h e   r e a d E x t e r n a l   m e t h o d   c a l l e d .   S e r i a l i z a b l e *   o b j e c t s   a r e   r e s t o r e d   b y   r e a d i n g   t h e m   f r o m   a n   O b j e c t I n p u t S t r e a m . < b r > * *   A n   E x t e r n a l i z a b l e   i n s t a n c e   c a n   d e s i g n a t e   a   s u b s t i t u t i o n   o b j e c t   v i a *   t h e   w r i t e R e p l a c e   a n d   r e a d R e s o l v e   m e t h o d s   d o c u m e n t e d   i n   t h e   S e r i a l i z a b l e *   i n t e r f a c e . < b r > * *   @ a u t h o r   u n a s c r i b e d *   @ s e e   j a v a . i o . O b j e c t O u t p u t S t r e a m *   @ s e e   j a v a . i o . O b j e c t I n p u t S t r e a m *   @ s e e   j a v a . i o . O b j e c t O u t p u t *   @ s e e   j a v a . i o . O b j e c t I n p u t *   @ s e e   j a v a . i o . S e r i a l i z a b l e *   @ s i n c e       J D K 1 . 1 * / p u b l i c   i n t e r f a c e   E x t e r n a l i z a b l e   e x t e n d s   j a v a . i o . S e r i a l i z a b l e   {     / * *         *   T h e   o b j e c t   i m p l e m e n t s   t h e   w r i t e E x t e r n a l   m e t h o d   t o   s a v e   i t s   c o n t e n t s         *   b y   c a l l i n g   t h e   m e t h o d s   o f   D a t a O u t p u t   f o r   i t s   p r i m i t i v e   v a l u e s   o r         *   c a l l i n g   t h e   w r i t e O b j e c t   m e t h o d   o f   O b j e c t O u t p u t   f o r   o b j e c t s ,   s t r i n g s ,         *   a n d   a r r a y s .         *         *   @ s e r i a l D a t a   O v e r r i d i n g   m e t h o d s   s h o u l d   u s e   t h i s   t a g   t o   d e s c r i b e         *                           t h e   d a t a   l a y o u t   o f   t h i s   E x t e r n a l i z a b l e   o b j e c t .         *                           L i s t   t h e   s e q u e n c e   o f   e l e m e n t   t y p e s   a n d ,   i f   p o s s i b l e ,         *                           r e l a t e   t h e   e l e m e n t   t o   a   p u b l i c / p r o t e c t e d   f i e l d   a n d / o r         *                           m e t h o d   o f   t h i s   E x t e r n a l i z a b l e   c l a s s .         *         *   @ p a r a m   o u t   t h e   s t r e a m   t o   w r i t e   t h e   o b j e c t   t o         *   @ e x c e p t i o n   I O E x c e p t i o n   I n c l u d e s   a n y   I / O   e x c e p t i o n s   t h a t   m a y   o c c u r         * /     v o i d   w r i t e E x t e r n a l ( O b j e c t O u t p u t   o u t )   t h r o w s   I O E x c e p t i o n ;     / * *         *   T h e   o b j e c t   i m p l e m e n t s   t h e   r e a d E x t e r n a l   m e t h o d   t o   r e s t o r e   i t s         *   c o n t e n t s   b y   c a l l i n g   t h e   m e t h o d s   o f   D a t a I n p u t   f o r   p r i m i t i v e         *   t y p e s   a n d   r e a d O b j e c t   f o r   o b j e c t s ,   s t r i n g s   a n d   a r r a y s .   T h e         *   r e a d E x t e r n a l   m e t h o d   m u s t   r e a d   t h e   v a l u e s   i n   t h e   s a m e   s e q u e n c e         *   a n d   w i t h   t h e   s a m e   t y p e s   a s   w e r e   w r i t t e n   b y   w r i t e E x t e r n a l .         *         *   @ p a r a m   i n   t h e   s t r e a m   t o   r e a d   d a t a   f r o m   i n   o r d e r   t o   r e s t o r e   t h e   o b j e c t         *   @ e x c e p t i o n   I O E x c e p t i o n   i f   I / O   e r r o r s   o c c u r         *   @ e x c e p t i o n   C l a s s N o t F o u n d E x c e p t i o n   I f   t h e   c l a s s   f o r   a n   o b j e c t   b e i n g         *                           r e s t o r e d   c a n n o t   b e   f o u n d .         * /     v o i d   r e a d E x t e r n a l ( O b j e c t I n p u t   i n )   t h r o w s   I O E x c e p t i o n ,   C l a s s N o t F o u n d E x c e p t i o n ; } c l a s s   H e l l o 1   i m p l e m e n t s   E x t e r n a l i z a b l e   {     p u b l i c   S t r i n g   n a m e   =   " m a k e " ;     p u b l i c   i n t   a g e   =   1 1 ;     p u b l i c   H e l l o 1 ( ) {             S y s t e m . o u t . p r i n t l n ( " H e l l o 1   i n i t " ) ;     }
    p u b l i c   v o i d   p r i n t 1 ( ) {             S y s t e m . o u t . p r i n t l n ( n a m e   +   "   :   " + a g e ) ;     }     @ O v e r r i d e     p u b l i c   v o i d   w r i t e E x t e r n a l ( O b j e c t O u t p u t   o u t )   t h r o w s   I O E x c e p t i o n   {             S y s t e m . o u t . p r i n t l n ( " w r i t e E x t e r n a l " ) ;     }     @ O v e r r i d e     p u b l i c   v o i d   r e a d E x t e r n a l ( O b j e c t I n p u t   i n )   t h r o w s   I O E x c e p t i o n ,   C l a s s N o t F o u n d E x c e p t i o n   {             S y s t e m . o u t . p r i n t l n ( " r e a d E x t e r n a l " ) ;     } } p u b l i c   c l a s s   S e r i a l i z a b l e _ T e s t   {     p u b l i c   s t a t i c   v o i d   m a i n ( S t r i n g [ ]   a r g s )   t h r o w s   I O E x c e p t i o n ,   C l a s s N o t F o u n d E x c e p t i o n ,   I l l e g a l A c c e s s E x c e p t i o n ,   I n s t a n t i a t i o n E x c e p t i o n   {             H e l l o 1   e   =   n e w   H e l l o 1 ( ) ;             / /             e . n a m e   =   " l l l l " ;             F i l e O u t p u t S t r e a m   f i l e O u t   =   n e w   F i l e O u t p u t S t r e a m ( " h e l l o " ) ;             O b j e c t O u t p u t S t r e a m   o u t   =   n e w   O b j e c t O u t p u t S t r e a m ( f i l e O u t ) ;             o u t . w r i t e O b j e c t ( e ) ;             o u t . c l o s e ( ) ;             f i l e O u t . c l o s e ( ) ;             F i l e I n p u t S t r e a m   f i l e I n   =   n e w   F i l e I n p u t S t r e a m ( " h e l l o " ) ;             O b j e c t I n p u t S t r e a m   i n   =   n e w   O b j e c t I n p u t S t r e a m ( f i l e I n ) ;             e   =   ( H e l l o 1 )   i n . r e a d O b j e c t ( ) ;             e . p r i n t 1 ( ) ;             i n . c l o s e ( ) ;             f i l e I n . c l o s e ( ) ;     } } # # w r i t e E x t e r n a l H e l l o 1   i n i t r e a d E x t e r n a l m a k e   :   1 1   / / m a k e @ O v e r r i d e     p u b l i c   v o i d   w r i t e E x t e r n a l ( O b j e c t O u t p u t   o u t )   t h r o w s   I O E x c e p t i o n   {             S y s t e m . o u t . p r i n t l n ( " w r i t e E x t e r n a l " ) ;             / / w r i t e             o u t . w r i t e O b j e c t ( n a m e ) ;             o u t . w r i t e I n t ( a g e ) ;     }     @ O v e r r i d e     p u b l i c   v o i d   r e a d E x t e r n a l ( O b j e c t I n p u t   i n )   t h r o w s   I O E x c e p t i o n ,   C l a s s N o t F o u n d E x c e p t i o n   {             S y s t e m . o u t . p r i n t l n ( " r e a d E x t e r n a l " ) ;             / / r e a d             n a m e   =   ( S t r i n g )   i n . r e a d O b j e c t ( ) ;             a g e   =   i n . r e a d I n t ( ) ;     } l l l l   :   1 1
w r i t e E x t e r n a l r e a d E x t e r n a l r e a d E x t e r n a l S e r i a l i z a b l e S e r i a l i z a b l e w r i t e / r e a d E x c e p t i o n   i n   t h r e a d   " m a i n "   j a v a . i o . O p t i o n a l D a t a E x c e p t i o n a t   j a v a . i o . O b j e c t I n p u t S t r e a m . r e a d O b j e c t 0 ( O b j e c t I n p u t S t r e a m . j a v a : 1 3 7 3 ) a t   j a v a . i o . O b j e c t I n p u t S t r e a m . r e a d O b j e c t ( O b j e c t I n p u t S t r e a m . j a v a : 3 7 3 ) a t   s e r i a l i z a b l e . H e l l o 1 . r e a d E x t e r n a l ( H e l l o . j a v a : 3 8 ) a t   j a v a . i o . O b j e c t I n p u t S t r e a m . r e a d E x t e r n a l D a t a ( O b j e c t I n p u t S t r e a m . j a v a : 1 8 4 9 ) a t   j a v a . i o . O b j e c t I n p u t S t r e a m . r e a d O r d i n a r y O b j e c t ( O b j e c t I n p u t S t r e a m . j a v a : 1 8 0 6 ) a t   j a v a . i o . O b j e c t I n p u t S t r e a m . r e a d O b j e c t 0 ( O b j e c t I n p u t S t r e a m . j a v a : 1 3 5 3 ) a t   j a v a . i o . O b j e c t I n p u t S t r e a m . r e a d O b j e c t ( O b j e c t I n p u t S t r e a m . j a v a : 3 7 3 ) a t   s e r i a l i z a b l e . S e r i a l i z a b l e _ T e s t . m a i n ( S e r i a l i z a b l e _ T e s t . j a v a : 1 7 ) E x c e p t i o n   i n   t h r e a d   " m a i n "   j a v a . i o . I n v a l i d C l a s s E x c e p t i o n :   s e r i a l i z a b l e . H e l l o 1 ;   n o   v a l i d   c o n s t r u c t o r a t   j a v a . i o . O b j e c t S t r e a m C l a s s $ E x c e p t i o n I n f o . n e w I n v a l i d C l a s s E x c e p t i o n ( O b j e c t S t r e a m C l a s s . j a v a : 1 5 0 ) a t   j a v a . i o . O b j e c t S t r e a m C l a s s . c h e c k D e s e r i a l i z e ( O b j e c t S t r e a m C l a s s . j a v a : 7 9 0 ) a t   j a v a . i o . O b j e c t I n p u t S t r e a m . r e a d O r d i n a r y O b j e c t ( O b j e c t I n p u t S t r e a m . j a v a : 1 7 8 2 ) a t   j a v a . i o . O b j e c t I n p u t S t r e a m . r e a d O b j e c t 0 ( O b j e c t I n p u t S t r e a m . j a v a : 1 3 5 3 ) a t   j a v a . i o . O b j e c t I n p u t S t r e a m . r e a d O b j e c t ( O b j e c t I n p u t S t r e a m . j a v a : 3 7 3 ) a t   s e r i a l i z a b l e . S e r i a l i z a b l e _ T e s t . m a i n ( S e r i a l i z a b l e _ T e s t . j a v a : 1 8 ) c l a s s   H e l l o 1   i m p l e m e n t s   E x t e r n a l i z a b l e   {     p u b l i c   S t r i n g   n a m e   =   " m a k e " ;     p u b l i c   i n t   a g e   =   1 1 ;     p u b l i c   H e l l o 1 ( ) {             S y s t e m . o u t . p r i n t l n ( " H e l l o 1   i n i t " ) ;     }     @ O v e r r i d e     p u b l i c   v o i d   w r i t e E x t e r n a l ( O b j e c t O u t p u t   o u t )   t h r o w s   I O E x c e p t i o n   {             S y s t e m . o u t . p r i n t l n ( " w r i t e E x t e r n a l " ) ;             o u t . w r i t e O b j e c t ( n a m e ) ;             o u t . w r i t e I n t ( a g e ) ;     }     @ O v e r r i d e     p u b l i c   v o i d   r e a d E x t e r n a l ( O b j e c t I n p u t   i n )   t h r o w s   I O E x c e p t i o n ,   C l a s s N o t F o u n d E x c e p t i o n   {
r e a d E x t e r n a l E x t e r n a l i z a b l e             S y s t e m . o u t . p r i n t l n ( " r e a d E x t e r n a l " ) ;             n a m e   =   ( S t r i n g )   i n . r e a d O b j e c t ( ) ;             a g e   =   i n . r e a d I n t ( ) ;     } }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则