[429] 2021-08-14_反射机制-实例化

文档创建者:s7ckTeam
浏览次数:9
最后更新:2025-01-16
2021-08-14_反射机制-实例化 - a l u m m 0 x   a l u m m 0 x   2 0 2 1 - 0 8 - 1 4   # J a v a   , 2 5 C l a s s f o r N a m e 使 c l a s s . n e w I n s t a n c e ( )   C l a s s c l a s s . n e w I n s t a n c e ( )   n u l l 使 j a v a . l a n g . R u n t i m e C l a s s   o u t c l a z z   =   C l a s s . f o r N a m e ( " t e s t . I n i t " ) ; / /   C o n s t r u c t o r < ? > [ ]   a   =   o u t c l a z z . g e t C o n s t r u c t o r s ( ) ; / /   C o n s t r u c t o r   b   =   o u t c l a z z . g e t C o n s t r u c t o r ( S t r i n g . c l a s s ) ; / /   C o n s t r u c t o r < ? > [ ]   c   =   o u t c l a z z . g e t D e c l a r e d C o n s t r u c t o r s ( ) ; / /   C o n s t r u c t o r   d   =   o u t c l a z z . g e t D e c l a r e d C o n s t r u c t o r ( S t r i n g . c l a s s ) ; / / . n e w I n s t a n c e ( ) ; d . n e w I n s t a n c e ( ) ; p u b l i c   c l a s s   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   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 ,   I n v o c a t i o n T a r g e t E x c e p t i o n ,   N o S u c h M e t h o d E x c e p t i o n   {               S i n p l e   a   =   S i n p l e . g e t S i n p l e ( ) ;               S i n p l e   b   =   S i n p l e . g e t S i n p l e ( ) ;               / /   e q u a l s = =               S y s t e m . o u t . p r i n t l n ( a   = =   b ) ;               S y s t e m . o u t . p r i n t l n ( a . e q u a l s ( b ) ) ;     } } c l a s s   S i n p l e   {       p r i v a t e   s t a t i c   S i n p l e   s i n p l e ;       p r i v a t e   S i n p l e ( )   {               S y s t e m . o u t . p r i n t l n ( " i n i t " ) ;     }       p u b l i c   s t a t i c   S i n p l e   g e t S i n p l e ( ) {               i f   ( n u l l   = =   s i n p l e ) {                       s i n p l e   =   n e w   S i n p l e ( ) ;             }               r e t u r n   S i n p l e . s i n p l e ;     } } C l a s s   c l a z z   =   C l a s s . f o r N a m e ( " t e s t . S i n p l e " ) ; M e t h o d   g e t   =   c l a z z . g e t M e t h o d ( " g e t S i n p l e " ) ; S i n p l e   c   =   ( S i n p l e )   g e t . i n v o k e ( n u l l ) ; S y s t e m . o u t . p r i n t l n ( a   = =   c ) ;   / /   t r u e S i n p l e   c   =   ( S i n p l e )   g e t . i n v o k e ( S t r i n g . c l a s s ) ; C l a s s   c l a z z   =   C l a s s . f o r N a m e ( " j a v a . l a n g . R u n t i m e " ) ;
p r i v a t e p u b l i c g e t R u n t i m e $ $ I n i t C l a s s   c l a z z   =   C l a s s . f o r N a m e ( " j a v a . l a n g . R u n t i m e " ) ; c l a z z . g e t M e t h o d ( " e x e c " ,   S t r i n g . c l a s s ) . i n v o k e ( c l a z z . n e w I n s t a n c e ( ) ,   " c a l c " ) ; 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 . l a n g . I l l e g a l A c c e s s E x c e p t i o n :   C l a s s   t e s t . T e s t   c a n   n o t   a c c e s s   a   m e m b e r   o f   c l a s s   j a v a . l a n g . R u n t i m e   w i t h   m o d i f i e r s   " p r i v a t e " a t   s u n . r e f l e c t . R e f l e c t i o n . e n s u r e M e m b e r A c c e s s ( R e f l e c t i o n . j a v a : 1 0 2 ) a t   j a v a . l a n g . C l a s s . n e w I n s t a n c e ( C l a s s . j a v a : 4 3 6 ) a t   t e s t . T e s t . m a i n ( T e s t . j a v a : 1 1 ) C l a s s   c l a z z   =   C l a s s . f o r N a m e ( " j a v a . l a n g . R u n t i m e " ) ; c l a z z . g e t M e t h o d ( " e x e c " ,   S t r i n g . c l a s s ) . i n v o k e ( c l a z z . g e t M e t h o d ( " g e t R u n t i m e " ) . i n v o k e ( n u l l ) ,   " c a l c " ) ; p u b l i c   c l a s s   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   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   {               C l a s s   c l a z z   =   C l a s s . f o r N a m e ( " t e s t . I n i t $ I n i t 1 " ) ; / /               c l a z z . n e w I n s t a n c e ( ) ;     } } c l a s s   I n i t   {     {               S y s t e m . o u t . p r i n t l n ( " e m p t y " ) ;     }       s t a t i c   {               S y s t e m . o u t . p r i n t l n ( " s t a t i c " ) ;     }       p u b l i c   I n i t ( )   {               S y s t e m . o u t . p r i n t l n ( " i n i t " ) ;     }       c l a s s   I n i t 1   {               p u b l i c   I n i t 1 ( )   {                       S y s t e m . o u t . p r i n t l n ( " i n i t 1 " ) ;             }     } } 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 . l a n g . I n s t a n t i a t i o n E x c e p t i o n :   t e s t . I n i t $ I n i t 1     a t   j a v a . l a n g . C l a s s . n e w I n s t a n c e ( C l a s s . j a v a : 4 2 7 )     a t   t e s t . T e s t . m a i n ( T e s t . j a v a : 9 ) C a u s e d   b y :   j a v a . l a n g . N o S u c h M e t h o d E x c e p t i o n :   t e s t . I n i t $ I n i t 1 . < i n i t > ( )     a t   j a v a . l a n g . C l a s s . g e t C o n s t r u c t o r 0 ( C l a s s . j a v a : 3 0 8 2 )     a t   j a v a . l a n g . C l a s s . n e w I n s t a n c e ( C l a s s . j a v a : 4 1 2 )     . . .   1   m o r e / / I n i t   i n i t   =   n e w   I n i t ( ) ; I n i t . I n i t 1   i n n e r   =   i n i t . n e w   I n i t 1 ( ) ;     / / I n i t                   / / I n i t . I n n e r   i n n e r 1   =   i n i t . g e t I n n e r I n s t a n c e ( ) ; C l a s s   o u t c l a z z   =   C l a s s . f o r N a m e ( " t e s t . I n i t " ) ; C l a s s   c l a z z   =   C l a s s . f o r N a m e ( " t e s t . I n i t $ I n i t 1 " ) ; c l a z z . g e t D e c l a r e d C o n s t r u c t o r s ( ) [ 0 ] . n e w I n s t a n c e ( o u t c l a z z . n e w I n s t a n c e ( ) ) ;
使 西 c l a s s . n e w I n s t a n c e ( ) c l a s s . g e t C o n s t r u c t o r ( S t r i n g . c l a s s ) . n e w I n s t a n c e ( ) c l a s s . g e t D e c l a r e d C o n s t r u c t o r ( S t r i n g . c l a s s ) . n e w I n s t a n c e ( ) C l a s s   c l a z z   =   C l a s s . f o r N a m e ( " t e s t . S i n p l e " ) ; M e t h o d   g e t   =   c l a z z . g e t M e t h o d ( " g e t S i n p l e " ) ; S i n p l e   c   =   ( S i n p l e )   g e t . i n v o k e ( n u l l ) ; C l a s s   o u t c l a z z   =   C l a s s . f o r N a m e ( " t e s t . I n i t " ) ; C l a s s   c l a z z   =   C l a s s . f o r N a m e ( " t e s t . I n i t $ I n i t 1 " ) ; c l a z z . g e t D e c l a r e d C o n s t r u c t o r s ( ) [ 0 ] . n e w I n s t a n c e ( o u t c l a z z . n e w I n s t a n c e ( ) ) ;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则