[434] 2021-08-20_序列化-Serializable

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

本版积分规则