Person p=new Person();
ÕâÊÇʲô?µ±È»ÊÇʵÀý»¯Ò»¸ö¶ÔÏóÁË.¿ÉÊÇÕâÖÖʵÀý»¯¶ÔÏóµÄ·½·¨´æÔÚÒ»¸öÎÊÌâ,ÄǾÍÊDZØÐëÒªÖªµÀÀàÃû²Å¿ÉÒÔʵÀý»¯ËüµÄ¶ÔÏó,ÕâÑùÎÒÃÇÔÚÓ¦Ó÷½Ãæ¾Í»áÊܵ½ÏÞÖÆ.ÄÇôÓÐûÓÐÕâÑùÒ»ÖÖ·½Ê½,ÈÃÎÒÃDz»ÖªµÀÕâ¸öÀàµÄÀàÃû¾Í¿ÉÒÔʵÀý»¯ËüµÄ¶ÔÏóÄØ?Thank Goodness!ÐÒ¿÷ÎÒÃÇÓõÄÊÇjava, java¾ÍÌṩÁËÕâÑùµÄ»úÖÆ.
1).java³ÌÐòÔÚÔËÐÐʱ¿ÉÒÔ»ñµÃÈκÎÒ»¸öÀàµÄ×Ö½ÚÂëÐÅÏ¢,°üÀ¨ÀàµÄÐÞÊηû(public,staticµÈ),»ùÀà(³¬Àà,¸¸Àà),ʵÏֵĽӿÚ,×ֶκͷ½·¨µÈÐÅÏ¢.
2).java³ÌÐòÔÚÔËÐÐʱ¿ÉÒÔ¸ù¾Ý×Ö½ÚÂëÐÅÏ¢À´´´½¨¸ÃÀàµÄʵÀý¶ÔÏó,¸Ä±ä¶ÔÏóµÄ×Ö¶ÎÄÚÈݺ͵÷ÓöÔÏó·½·¨.
ÕâÑùµÄ»úÖÆ¾Í½Ð·´Éä¼¼Êõ.¿ÉÒÔÏëÏó¹âѧÖеķ´Éä,¾ÍÏñÎÒÃÇÕÕ¾µ×Ó,¾µ×ÓÖÐÓÖ³öÏÖÒ»¸ö×Ô¼º(±ÈÓ÷¿ÉÄܲ»Ì«Ç¡µ±,µ«ÊÇ×ãÒÔ±í´ïÇå³þÒâ˼ÁË).·´Éä¼¼ÊõÌṩÁËÒ»ÖÖͨÓõĶ¯Ì¬Á¬½Ó³ÌÐò×é¼þµÄ·½·¨,²»±ØÒª°Ñ³ÌÐòËùÐèÒªµÄÄ¿±êÀàÓ²±àÂëµ½Ô´³ÌÐòÖÐ,´Ó¶øÊ¹µÃÎÒÃÇ¿ÉÒÔ´´½¨Áé»îµÄ³ÌÐò.
JavaµÄ·´Éä»úÖÆÊÇͨ¹ý·´ÉäAPIÀ´ÊµÏÖµÄ,ËüÔÊÐí³ÌÐòÔÚÔËÐйý³ÌÖÐÈ¡µÃÈκÎÒ»¸öÒÑÖªÃû³ÆµÄÀàµÄÄÚ²¿ÐÅÏ¢.·´ÉäAPIλÓÚjava.lang.reflect°üÖÐ.Ö÷Òª°üÀ¨ÒÔϼ¸Àà:
1).ConstructorÀà:ÓÃÀ´ÃèÊöÒ»¸öÀàµÄ¹¹Ôì·½·¨
2).FieldÀà:ÓÃÀ´ÃèÊöÒ»¸öÀàµÄ³ÉÔ±±äÁ¿
3).MethodÀà:ÓÃÀ´ÃèÊöÒ»¸öÀàµÄ·½·¨.
4).ModiferÀà:ÓÃÀ´ÃèÊöÀàÄÚ¸÷ÔªËØµÄÐÞÊηû
5).Array:ÓÃÀ´¶ÔÊý×é½øÐвÙ×÷.
Constructor,Field,MethodÕâÈý¸öÀà¶¼ÊÇJVM(ÐéÄâ»ú)ÔÚ³ÌÐòÔËÐÐʱ´´½¨µÄ,ÓÃÀ´±íʾ¼ÓÔØÀàÖÐÏàÓ¦µÄ³ÉÔ±.ÕâÈý¸öÀ඼ʵÏÖÁËjava.lang.reflect.Member½Ó¿Ú,Member½Ó¿Ú¶¨ÒåÁË»ñÈ¡Àà³ÉÔ±»ò¹¹Ôì·½·¨µÈÐÅÏ¢µÄ·½·¨.ҪʹÓÃÕâЩ·´ÉäAPI,±ØÐëÏȵõ½Òª²Ù×÷µÄ¶ÔÏó»òÀàµÄClassÀàµÄʵÀý.ͨ¹ýµ÷ÓÃClassÀàµÄnewInstance·½·¨(Ö»Äܵ÷ÓÃÀàµÄĬÈϹ¹Ôì·½·¨)¿ÉÒÔ´´½¨ÀàµÄʵÀý.ÕâÑùÓоÖÏÞÐÔ,ÎÒÃÇ¿ÉÒÔÏȳåÀàµÄClassʵÀý»ñÈ¡ÀàÐèÒªµÄ¹¹Ôì·½·¨,È»ºóÔÚÀûÓ÷´ÉäÀ´´´½¨ÀàµÄÒ»¸öʵÀý.
Ò».»ñÈ¡ÀàµÄ¹¹Ôì·½·¨µÄConstructor¶ÔÏó(Êý×é)
¡ñ Constructor[] getDeclaredConstructors();·µ»ØÒѼÓÔØÀàÉùÃ÷µÄËùÓеĹ¹Ôì·½·¨µÄConstructor¶ÔÏóÊý×é.
¡ñ Constructor getDeclaredConstructor(Class[] paramTypes);·µ»ØÒѼÓÔØÀàÉùÃ÷µÄÖ¸¶¨¹¹Ôì·½·¨µÄConstructor¶ÔÏó,paramTypesÖ¸¶¨Á˲ÎÊýÀàÐÍ.
¡ñ Constructor[] getConstructors();·µ»ØÒѼÓÔØÀàÉùÃ÷µÄËùÓеÄpublicÀàÐ͵Ĺ¹Ôì·½·¨µÄConstructor¶ÔÏóÊý×é.
¡ñ Constructor getConstructor(Class[] paramTypes);·µ»ØÒѼÓÔØÀà