Java Reflection JAVA·´Éä
Reflection ÊÇ Java ³ÌÐò¿ª·¢ÓïÑÔµÄÌØÕ÷Ö®Ò»£¬ËüÔÊÐíÔËÐÐÖÐµÄ Java ³ÌÐò¶Ô×ÔÉí½øÐмì²é£¬»òÕß˵“×ÔÉ󔣬²¢ÄÜÖ±½Ó²Ù×÷³ÌÐòµÄÄÚ²¿ÊôÐÔ¡£ÀýÈ磬ʹÓÃËüÄÜ»ñµÃ Java ÀàÖи÷³ÉÔ±µÄÃû³Æ²¢ÏÔʾ³öÀ´¡£
Java µÄÕâÒ»ÄÜÁ¦ÔÚʵ¼ÊÓ¦ÓÃÖÐÒ²ÐíÓõò»ÊǺܶ࣬µ«ÊÇÔÚÆäËüµÄ³ÌÐòÉè¼ÆÓïÑÔÖиù±¾¾Í²»´æÔÚÕâÒ»ÌØÐÔ¡£ÀýÈ磬Pascal¡¢C »òÕß C++ ÖоÍûÓа취ÔÚ³ÌÐòÖлñµÃº¯Êý¶¨ÒåÏà¹ØµÄÐÅÏ¢¡£
JavaBean ÊÇ reflection µÄʵ¼ÊÓ¦ÓÃÖ®Ò»£¬ËüÄÜÈÃһЩ¹¤¾ß¿ÉÊÓ»¯µÄ²Ù×÷Èí¼þ×é¼þ¡£ÕâЩ¹¤¾ßͨ¹ý reflection ¶¯Ì¬µÄÔØÈ벢ȡµÃ Java ×é¼þ(Àà) µÄÊôÐÔ¡£
1. Ò»¸ö¼òµ¥µÄÀý×Ó
¿¼ÂÇÏÂÃæÕâ¸ö¼òµ¥µÄÀý×Ó£¬ÈÃÎÒÃÇ¿´¿´ reflection ÊÇÈçºÎ¹¤×÷µÄ¡£
import java.lang.reflect.*;
public class DumpMethods {
public static void main(String args[]) {
try {
Class c = Class.forName(args[0]);
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
} catch (Throwable e) {
System.err.println(e);
}
}
}
°´ÈçÏÂÓï¾äÖ´ÐУº
java DumpMethods java.util.Stack
ËüµÄ½á¹ûÊä³öΪ£º
public java.lang.Object java.util.Stack.push(java.lang.Object)
public synchronized java.lang.Object java.util.Stack.pop()
public synchronized java.lang.Object java.util.Stack.peek()
public boolean java.util.Stack.empty()
public synchronized int java.util.Stack.search(java.lang.Object)
ÕâÑù¾ÍÁгöÁËjava.util.Stack ÀàµÄ¸÷·½·¨ÃûÒÔ¼°ËüÃǵÄÏÞÖÆ·ûºÍ·µ»ØÀàÐÍ¡£
Õâ¸ö³ÌÐòʹÓà Class.forName ÔØÈëÖ¸¶¨µÄÀ࣬Ȼºóµ÷Óà getDeclaredMethods À´»ñÈ¡Õâ¸öÀàÖж¨ÒåÁ˵ķ½·¨ÁÐ±í¡£java.lang.reflect.Methods ÊÇÓÃÀ´ÃèÊöij¸öÀàÖе¥¸ö·½·¨µÄÒ»¸öÀà¡£
2.¿ªÊ¼Ê¹Óà Reflection
Ó
Ïà¹ØÎĵµ£º
javax.swing.plaf.metal.MetalLookAndFeel
com.sun.java.swing.plaf.windows.WindowsLookAndFeel
com.sun.java.swing.plaf.motif.MotifLookAndFeel
com.sun.java.swing.plaf.mac.MacLookAndFeel
com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel //java6ÐÂÆ¤·ô£¬²£Á§Í¸Ã÷
ÎÒµÄ×ÊÔ´ÖÐÓÐÏà¹Ø java swing ·½ÃæµÄ½Ì³Ì£¬j ......
Ò»¡¢JavaÒì³£µÄ»ù´¡ÖªÊ¶
Òì³£ÊdzÌÐòÖеÄһЩ´íÎ󣬵«²¢²»ÊÇËùÓеĴíÎó¶¼ÊÇÒì³££¬²¢ÇÒ´íÎóÓÐʱºòÊÇ¿ÉÒÔ±ÜÃâµÄ¡£±ÈÈç˵£¬ÄãµÄ´úÂëÉÙÁËÒ»¸ö·ÖºÅ£¬ÄÇôÔËÐгöÀ´½á¹ûÊÇÌáʾÊÇ´íÎójava.lang.Error£»Èç¹ûÄãÓÃSystem.out.println(11/0)£¬ÄÇôÄãÊÇÒòΪÄãÓÃ0×öÁ˳ýÊý£¬»áÅ׳öjava.lang.ArithmeticExceptionµÄÒì³£ ......
¹Ø¼ü×Ö£ºthrows,throw,try,catch,finally·Ö±ð´ú±íʲôÒâÒ壿ÔÚtry¿éÖпÉÒÔÅ׳öÒì³£Âð£¿
´ð£ºJavaͨ¹ýÃæÏò¶ÔÏóµÄ·½·¨½øÐÐÒì³£´¦Àí£¬°Ñ¸÷ÖÖ²»Í¬µÄÒì³£½øÐзÖÀ࣬²¢ÌṩÁËÁ¼ºÃµÄ½Ó¿Ú¡£ÔÚJavaÖУ¬Ã¿¸öÒì³£¶¼ÊÇÒ»¸ö¶ÔÏó£¬ËüÊÇThrowableÀà»òÆäËü×ÓÀàµÄʵÀý¡£µ±Ò»¸ö·½·¨³öÏÖÒì³£ºó±ãÅ׳öÒ»¸öÒì³£¶ÔÏ󣬸öÔÏóÖаüº¬ÓÐÒì³£ÐÅÏ¢£¬µ÷ ......
¶ÔÏóÐòÁл¯
ËüÃæÏòÄÇЩʵÏÖÁËSerializable½Ó¿ÚµÄ¶ÔÏ󣬿ɽ«ËüÃÇת»»³ÉһϵÁеÄ×Ö½Ú£¬²¢¿ÉÒÔÔÚÒÔºóÍêÈ«»Ö¸´³ÉÔÀ´µÄÑù×Ó¡£
ÐòÁл¯»úÖÆ¿ÉÒÔ×Ô¶¯²¹³¥²Ù×÷ϵͳ֮¼äµÄ²î±ð¡£WindowsÉϵĶÔÏó¿ÉÒÔͨ¹ýÍøÂç·¢Ë͸ølinux»úÆ÷£¬ÔÚÄ¿µÄ»úÉÏ¿ÉÒÔ׼ȷÎÞÎóµÄÖØÐÂ×°Åä¡£
ͨ¹ýÐòÁл¯ÕâÒ»¶ÔÏ󣬽«Æä´æ´¢ÔÚÓ²ÅÌÖУ¬ÒÔºóÔÚ³ÌÐòÖØÐµ÷Óà ......