Java·´Éä»úÖÆÉîÈëÑо¿
Java ·´ÉäÊÇJavaÓïÑÔµÄÒ»¸öºÜÖØÒªµÄÌØÕ÷£¬ËüʹµÃJava¾ßÌåÁË“¶¯Ì¬ÐÔ”¡£
ÔÚJavaÔËÐÐʱ»·¾³ÖУ¬¶ÔÓÚÈÎÒâÒ»¸öÀ࣬ÄÜ·ñÖªµÀÕâ¸öÀàÓÐÄÄЩÊôÐԺͷ½·¨£¿¶ÔÓÚÈÎÒâÒ»¸ö¶ÔÏó£¬ÄÜ·ñµ÷ÓÃËüµÄÈÎÒâÒ»¸ö·½·¨£¿´ð°¸Êǿ϶¨µÄ¡£ÕâÖÖ¶¯Ì¬»ñÈ¡ÀàµÄÐÅÏ¢ÒÔ¼°¶¯Ì¬µ÷ÓöÔÏóµÄ·½·¨µÄ¹¦ÄÜÀ´×ÔÓÚJava ÓïÑԵķ´É䣨Reflection£©»úÖÆ¡£
Java ·´Éä»úÖÆÖ÷ÒªÌṩÁËÒÔϹ¦ÄÜ£º
ÔÚÔËÐÐʱÅжÏÈÎÒâÒ»¸ö¶ÔÏóËùÊôµÄÀà¡£
ÔÚÔËÐÐʱ¹¹ÔìÈÎÒâÒ»¸öÀàµÄ¶ÔÏó¡£
ÔÚÔËÐÐʱÅжÏÈÎÒâÒ»¸öÀàËù¾ßÓеijÉÔ±±äÁ¿ºÍ·½·¨¡£
ÔÚÔËÐÐʱµ÷ÓÃÈÎÒâÒ»¸ö¶ÔÏóµÄ·½·¨¡£
Reflection ÊÇJava±»ÊÓΪ¶¯Ì¬£¨»ò×¼¶¯Ì¬£©ÓïÑÔµÄÒ»¸ö¹Ø¼üÐÔÖÊ¡£Õâ¸ö»úÖÆÔÊÐí³ÌÐòÔÚÔËÐÐʱ͸¹ýReflection APIsÈ¡µÃÈκÎÒ»¸öÒÑÖªÃû³ÆµÄclassµÄÄÚ²¿ÐÅÏ¢£¬°üÀ¨Æämodifiers£¨ÖîÈçpublic, static µÈµÈ£©¡¢superclass£¨ÀýÈçObject£©¡¢ÊµÏÖÖ®interfaces£¨ÀýÈçSerializable£©£¬Ò²°üÀ¨fieldsºÍmethods µÄËùÓÐÐÅÏ¢£¬²¢¿ÉÓÚÔËÐÐʱ¸Ä±äfieldsÄÚÈÝ»òµ÷ÓÃmethods¡£
Ò»°ã¶øÑÔ£¬¿ª·¢ÕßÉçȺ˵µ½¶¯Ì¬ÓïÑÔ£¬´óÖÂÈÏͬµÄÒ»¸ö¶¨ÒåÊÇ£º“³ÌÐòÔËÐÐʱ£¬ÔÊÐí¸Ä±ä³ÌÐò½á¹¹»ò±äÁ¿ÀàÐÍ£¬ÕâÖÖÓïÑÔ³ÆΪ¶¯Ì¬ÓïÑÔ”¡£´ÓÕâ¸ö¹Ûµã¿´£¬Perl£¬Python£¬RubyÊǶ¯Ì¬ÓïÑÔ£¬C++£¬Java£¬C#²»ÊǶ¯Ì¬ÓïÑÔ¡£
¾¡¹ÜÔÚÕâÑùµÄ¶¨ÒåÓë·ÖÀàÏÂJava²»ÊǶ¯Ì¬ÓïÑÔ£¬ËüÈ´ÓÐ×ÅÒ»¸ö·Ç³£Í»³öµÄ¶¯Ì¬Ïà¹Ø»úÖÆ£ºReflection¡£Õâ¸ö×ÖµÄÒâ˼ÊÇ“·´Éä¡¢Ó³Ïó¡¢µ¹Ó°”£¬ÓÃÔÚJavaÉíÉÏÖ¸µÄÊÇÎÒÃÇ¿ÉÒÔÓÚÔËÐÐʱ¼ÓÔØ¡¢Ì½Öª¡¢Ê¹ÓñàÒëÆÚ¼äÍêȫδ֪µÄclasses¡£»»¾ä»°Ëµ£¬Java³ÌÐò¿ÉÒÔ¼ÓÔØÒ»¸öÔËÐÐʱ²ÅµÃÖªÃû³ÆµÄclass£¬»ñϤÆäÍêÕû¹¹Ô죨µ«²»°üÀ¨methods¶¨Ò壩£¬²¢Éú³ÉÆä¶ÔÏóʵÌå¡¢»ò¶ÔÆäfieldsÉèÖµ¡¢»ò»½ÆðÆämethods¡£ÕâÖÖ“¿´Í¸ class”µÄÄÜÁ¦£¨the ability of the program to examine itself£©±»³ÆΪintrospection£¨ÄÚÊ¡¡¢ÄÚ¹Û¡¢·´Ê¡£©¡£ReflectionºÍintrospectionÊdz£±»²¢ÌáµÄÁ½¸öÊõÓï¡£
ÔÚJDKÖУ¬Ö÷ÒªÓÉÒÔÏÂÀàÀ´ÊµÏÖJava·´Éä»úÖÆ£¬ÕâЩÀ඼λÓÚjava.lang.reflect°üÖУº
ClassÀࣺ´ú±íÒ»¸öÀà¡£
Field Àࣺ´ú±íÀàµÄ³ÉÔ±±äÁ¿£¨³ÉÔ±±äÁ¿Ò²³ÆΪÀàµÄÊôÐÔ£©¡£
MethodÀࣺ´ú±íÀàµÄ·½·¨¡£
Constructor Àࣺ´ú±íÀàµÄ¹¹Ôì·½·¨¡£
ArrayÀࣺÌṩÁ˶¯Ì¬´´½¨Êý×飬ÒÔ¼°·ÃÎÊÊý×éµÄÔªËصľ²Ì¬·½·¨¡£
ÏÂÃæ¸ø³ö¼¸¸öÀý×Ó¿´¿´Reflection APIµÄʵ¼ÊÔËÓãº
Ò»¡¢Í¨¹ýClassÀà»ñÈ¡³ÉÔ±±äÁ¿¡¢³ÉÔ±·½·¨¡¢½Ó¿Ú¡¢³¬Àà¡¢¹¹Ôì·½·¨µÈ
&
Ïà¹ØÎĵµ£º
import java.util.ArrayList;
import java.util.HashMap;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
test1();
System.out.println("==================================");
test2();
......
¡¾IT168 Îĵµ
¡¿ÄÚ´æ
й¶ÎÊÌâ¶ÔÓÚ³ÌÐòÀ´Ëµ£¬ÊÇÒ»¸öºÜÄÑ·¢ÏÖ£¬²¢ÇÒÈÝÒ×ÒýÆðÑÏÖØÔÖº¦µÄÊÂÇé¡£
JavaÒ»Ö±ÒÔÆäÀ¬»ø»ØÊÕ»úÖÆΪ×ÔºÀ£¬ÄÇÊÇ·ñÕâÖÖ»úÖƾÍÊÇÍêÃÀµÄÄØ¡£
¡¡¡¡³£¹æÀí½âÉÏ£¬JavaµÄÄÚ´æ
¹ÜÀí»úÖÆÊǽ«¾Ö²¿±äÁ¿±£´æÔÚ¶ÑÖУ¬µ±±äÁ¿µÄ×÷ÓÃÓò½áÊøÖ®ºó£¬¸Ã±äÁ¿ËùÕ¼ÓõÄ
ÄÚÈݻᱻ×Ô¶¯»ØÊÕ¡£²»ÐèÒª×öÈκÎÌØÊâµÄ´¦Àí¡£±ÈÈçÏ ......
×î½ü×öÒ»¸öÏîÄ¿£¬ÒªÓõ½·ÖÒ³¹¦ÄÜ£¬²Î¿¼Á˺ܶ෽·¨£¬ÓеIJ»ºÏÊÊ£¬ÓеIJ»Ï²»¶£¬ÓÚÊÇ×Ô¼ºÔÚËûÃǵĻù´¡ÉÏÕûÁËÒ»¸ö£»Ë¼Â·ÊÇÕâÑùµÄ£ºÏÈ°ÑÐèÒª·ÖÒ³µÄÊý¾Ý»òÊǼǼ¶¼²éѯ³öÀ´ ´æÈëÒ»¸ö¼¯ºÏÀàÀïÈçList»òÊÇVector£¬È»ºóÀûÓÃÆäsublist(int findex,int eindex)·½·¨£¬»ñÈ¡ÐèÒª·ÖÒ³µÄÊý¾Ý»ò¼Ç¼,¹ØÓ ......
6.·ºÐÍ:
1¡¢·ºÐ͵ÄÀàÐͲÎÊýÖ»ÄÜÊÇÀàÀàÐÍ£¨°üÀ¨×Ô¶¨ÒåÀࣩ£¬²»ÄÜÊǼòµ¥ÀàÐÍ¡£
¡¡¡¡2¡¢Í¬Ò»ÖÖ·ºÐÍ¿ÉÒÔ¶ÔÓ¦¶à¸ö°æ±¾£¨ÒòΪ²ÎÊýÀàÐÍÊDz»È·¶¨µÄ£©£¬²»Í¬°æ±¾µÄ·ºÐÍÀàʵÀýÊDz»¼æÈݵġ£
¡¡¡¡3¡¢·ºÐ͵ÄÀàÐͲÎÊý¿ÉÒÔÓжà¸ö¡£
¡¡¡¡4¡¢·ºÐ͵IJÎÊýÀàÐÍ¿ÉÒÔʹÓÃextendsÓï¾ä£¬ÀýÈç<T extends superclass>¡£Ï°¹ßÉϳÉΪ“Óн ......
¡¡ÔÚJavaÓïÑÔÖУ¬ abstract class ºÍinterface ÊÇÖ§³Ö³éÏóÀඨÒåµÄÁ½ÖÖ»úÖÆ¡£ÕýÊÇÓÉÓÚÕâÁ½ÖÖ»úÖƵĴæÔÚ£¬²Å¸³ÓèÁËJavaÇ¿´óµÄ ÃæÏò¶ÔÏóÄÜÁ¦¡£abstract classºÍinterfaceÖ®¼äÔÚ¶ÔÓÚ³éÏóÀඨÒåµÄÖ§³Ö·½Ãæ¾ßÓкܴóµÄÏàËÆÐÔ£¬ÉõÖÁ¿ÉÒÔÏ໥Ìæ»»£¬Òò´ËºÜ¶à¿ª·¢ÕßÔÚ½ø ÐгéÏóÀඨÒåʱ¶ÔÓÚabstract classºÍinterfaceµÄÑ¡ÔñÏԵñȽÏËæ ......