Java·´ÉäÖ®Methodµ÷ÓúÍFiledÉèÖÃ
·´ÉäÊÇjavaµÄÒ»¸ö¸ß¼¶ÌØÐÔ¡£
Reflection ÊÇJava±»ÊÓΪ¶¯Ì¬£¨»ò×¼¶¯Ì¬£©ÓïÑÔµÄÒ»¸ö¹Ø¼üÐÔÖÊ¡£Õâ¸ö»úÖÆÔÊÐí³ÌÐòÔÚÔËÐÐʱ͸¹ýReflection APIsÈ¡µÃÈκÎÒ»¸öÒÑÖªÃû³ÆµÄclassµÄÄÚ²¿ÐÅÏ¢£¬°üÀ¨Æämodifiers£¨ÖîÈçpublic, static µÈµÈ£©¡¢superclass£¨ÀýÈçObject£©¡¢ÊµÏÖÖ®interfaces£¨ÀýÈçSerializable£©£¬Ò²°üÀ¨fieldsºÍmethods µÄËùÓÐÐÅÏ¢£¬²¢¿ÉÓÚÔËÐÐʱ¸Ä±äfieldsÄÚÈÝ»òµ÷ÓÃmethods¡£
·´Éä¾ÍÊǸøÓ¦ÓóÌÐòÒ»¸ö¿ÉÒÔ¼ì²é×Ô¼ººÍÔËÐл·¾³µÄÒ»¸ö·¾¶¡£×Ô¼ºÐÅÏ¢µÄÌæ´ú—MetaData.
ÈëÃż¶±ðÏÈ¿´¿´Èç¹ûͨ¹ý·´Éäµ÷Ó÷½·¨ºÍÉèÖóÉÔ±±äÁ¿µÄÖµ£º
1.ͨ¹ý·´ÉäÉèÖñäÁ¿Öµ
import java.lang.reflect.Field;
/**
* ·´ÉäÐÞ¸ÄField
*
* @author yblin
*/
public class RefField {
public String color;
public Double number;
public static void main(String args[]) {
try {
Class c = RefField.class;
Field colorField;
colorField = c.getField("color");
Field numberField = c.getField("number");
RefField obj = new RefField();
colorField.set(obj, "blue");
System.out.println("color=" + colorField.get(obj));
numberField.set(obj, 2.1);
System.out.println("number=" + numberField.get(obj));
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
2.µ÷Ó÷´Éäµ÷Ó÷½·¨
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* ·´Éä·½·¨µ÷Óá£
*
* @author yblin
*/
public class RefMethod {
private String color;
public void printColor() {
Ïà¹ØÎĵµ£º
(1) ÀàÃûÊ××ÖĸӦ¸Ã´óд¡£×ֶΡ¢·½·¨ÒÔ¼°¶ÔÏ󣨾ä±ú£©µÄÊ××ÖĸӦСд¡£¶ÔÓÚËùÓбêʶ·û£¬ÆäÖаüº¬µÄËùÓе¥´Ê¶¼Ó¦½ô¿¿ÔÚÒ»Æð£¬¶øÇÒ´óдÖм䵥´ÊµÄÊ××Öĸ¡£ÀýÈ磺
ThisIsAClassName
thisIsMethodOrFieldName
ÈôÔÚ¶¨ÒåÖгöÏÖÁ˳£Êý³õʼ»¯×Ö·û£¬Ôò´óдstatic final»ù±¾ÀàÐͱêʶ·ûÖеÄËùÓÐ×Öĸ¡£ÕâÑù±ã¿É±êÖ¾³öËüÃÇÊôÓÚ±àÒë ......
Ò»¸öºÃµÄ³ÌÐòÔ±³ýÁ˾߱¸ÔúʵµÄ»ù±¾¹¦Í⣬»¹Ó¦¸Ã¾ßÓиüΪÁé»îµÄÂ߼˼άÓëÅжÏÄÜÁ¦¡£³ý´ËÖ®Í⣬³ÅÎÕһЩÐÐÖ®ÓÐЧµÄ¸¨Öú¹¤¾ßÒ²ºÜÖØÒª¡£¹¤ÓûÉÆÆäÊÂ,±ØÏÈÀûÆäÆ÷¡£ÓкõŤ¾ß¸¨Öú£¬Ëù×öµÄ¹¤×÷½«Ê°빦±¶¡£ÏÂÃæÏò´ó¼ÒÍÆ¼ö»ùÓÚWEBÓ¦Óÿª·¢µÄjava³ÌÐòÔ±Ó¦¸Ã±Ø±¸µÄ¸¨Öú¿ª·¢¹¤¾ß¡£
¡¡¡¡1£¬JavaÆÊÎö¹¤¾ß¡¡--¡¡profiler
¡¡¡¡ÊÇÒ»¸öÈ«¹ ......
ÏÈѧϰj2se
Ҫѧϰj2ee¾ÍÒªÏÈѧϰj2se£¬¸Õ¿ªÊ¼Ñ§Ï°j2seÏȽ¨Ò鲻ҪʹÓÃIDE£¬È»ºó½¥½¥µÄ¹ý¶Éµ½Ê¹ÓÃIDE¿ª·¢£¬±Ï¾¹ÓÃËü·½±ãÂѧϰj2seÍÆ¼öÁ½±¾Ê飬¡¶java2ºËÐļ¼ÊõÒ»¶þ¾í¡·£¬¡¶java±à³Ì˼Ïë¡·£¬¡¶javaģʽ¡·¡£ÆäÖС¶java±à³Ì˼Ïë¡·ÒªÑжÁ£¬¾«¶Á¡£ÕâÒ»¶Îʱ¼äÊÇ»ù±¾¹¦Ñ§Ï°£¬Ê±¼ä»áºÜ³¤£¬Ò²¿ÉẠ̈ܺܶ¬ÕâÒª¿´Ñ§Ï°Õß×ÔÉíˮƽ¶ø¶¨ ......
ÔÚ Java ³ÌÐòÖÐʹÓöàÏß³ÌÒª±ÈÔÚ C »ò C++ ÖÐÈÝÒ׵ö࣬ÕâÊÇÒòΪ Java ±à³ÌÓïÑÔÌṩÁËÓïÑÔ¼¶µÄÖ§³Ö¡£±¾ÎÄͨ¹ý¼òµ¥µÄ±à³ÌʾÀýÀ´ËµÃ÷ Java ³ÌÐòÖеĶàÏß³ÌÊǶàôֱ¹Û¡£¶ÁÍê±¾ÎÄÒÔºó£¬Óû§Ó¦¸ÃÄܹ»±àд¼òµ¥µÄ¶àÏ̳߳ÌÐò¡£
¡¡¡¡ÎªÊ²Ã´»áÅŶӵȴý£¿
¡¡¡¡ÏÂÃæµÄÕâ¸ö¼òµ¥µÄ Java ³ÌÐòÍê³ÉËÄÏî²»Ïà¹ØµÄÈÎÎñ¡£ÕâÑùµÄ³ÌÐòÓе¥¸ö¿ØÖ ......
ÎÊÌâ
ÔÚǰһС½Ú£¬½éÉÜÁËÔÚ¶àÏ̱߳à³ÌÖÐʹÓÃͬ²½»úÖÆµÄÖØÒªÐÔ£¬²¢Ñ§»áÁËÈçºÎʵÏÖͬ²½µÄ·½·¨À´ÕýÈ·µØ·ÃÎʹ²Ïí×ÊÔ´¡£ÕâЩÏß³ÌÖ®¼äµÄ¹ØÏµÊÇÆ½µÈµÄ£¬±Ë´ËÖ®¼ä²¢²»´æÔÚÈκÎÒÀÀµ£¬ËüÃǸ÷×Ô¾ºÕùCPU×ÊÔ´£¬»¥²»ÏàÈ㬲¢ÇÒ»¹ÎÞÌõ¼þµØ×èÖ¹ÆäËûÏ̶߳Թ²Ïí×ÊÔ´µÄÒì²½·ÃÎÊ¡£È»¶ø£¬Ò²ÓкܶàÏÖʵÎÊÌâÒªÇó²»½öҪͬ²½µÄ·ÃÎÊͬһ¹²Ïí×ÊÔ´£¬¶øÇ ......