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
Ó
Ïà¹ØÎĵµ£º
java»·¾³±äÁ¿ÉèÖý̳Ì
ÏÂÔØºÃµÄJDKÊÇÒ»¸ö¿ÉÖ´Ðа²×°³ÌÐò£¬Ë«»÷°²×°¡£½«°²×°Â·¾¶¸ÄΪ£ºC:\jdk1.6.0£¨µ±È»ÆäËû·¾¶Ò²¿ÉÒÔ£©¡£
JDK°²×°Íê³ÉÖ®ºó
ÎÒÃÇÀ´ÉèÖû·¾³±äÁ¿£º
ÎҵĵçÄÔµãÓÒ¼ü£¬Ñ¡Ôñ“ÊôÐÔ”£¬Ñ¡Ôñ“¸ß¼¶”±êÇ©£¬½øÈë»·¾³±äÁ¿ÉèÖ㬷ֱðÉèÖÃÈçÏÂÈý¸ö»·¾³±äÁ¿£º
£¨1£©
ÉèÖúÃpath±äÁ¿£¬Ê¹µ ......
×Ô¶¨Òå±êÇ©£¬±êÇ©´¦ÀíÆ÷Àࣺ
PrivilegeTag.JavaÓÐȨÏÞµÄÀàÉè¼Æ£º
package com.qizhi.tags.bean;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.tagext.TagSupport;
import com.qizhi.entity.Roleright;
import com.qizh ......
Ò»°ã¶øÑÔ£¬¿ª·¢ÕßÉçȺ˵µ½¶¯Ì¬ÓïÑÔ£¬´óÖÂÈÏͬµÄÒ»¸ö¶¨ÒåÊÇ£º“³ÌÐòÔËÐÐʱ£¬ÔËÐиıä³ÌÐò½á¹¹»ò±äÁ¿ÀàÐÍ£¬ÕâÖÖÓïÑÔ³ÆÎª¶¯Ì¬ÓïÑÔ”¡£´ÓÕâ¸ö¹Ûµã¿´£¬perl,phthon,rubyÊǶ¯Ì¬ÓïÑÔ£¬C++,JAVA,C#²»ÊǶ¯Ì¬ÓïÑÔ¡£
ÔÚJavaÔËÐÐʱ»·¾³ÖУ¬¶ÔÓÚÈÎÒâÒ»¸öÀ࣬ÄÜ·ñÖªµÀÕâ¸öÀàÓÐÄÄЩÊôÐԺͷ½·¨£¿¶ÔÓÚÈÎÒâÒ»¸ö¶ÔÏó£¬ÄÜ·ñµ ......
ÊÂÎñµÄÌØÐÔ£º
1) Ô×ÓÐÔ£¨atomicity£©£ºÊÂÎñÊÇÊý¾Ý¿âµÄÂß¼¹¤×÷µ¥Î»£¬¶øÇÒÊDZØÐëÊÇÔ×Ó¹¤×÷µ¥Î»£¬¶ÔÓÚÆäÊý¾ÝÐ޸ģ¬ÒªÃ´È«²¿Ö´ÐУ¬ÒªÃ´È«²¿²»Ö´ÐС£
2) Ò»ÖÂÐÔ£¨consistency£©£ºÊÂÎñÔÚÍê³Éʱ£¬±ØÐëÊÇËùÓеÄÊý¾Ý¶¼±£³ÖÒ»ÖÂ״̬¡£ÔÚÏà¹ØÊý¾Ý¿âÖУ¬ËùÓйæÔò¶¼±ØÐëÓ¦ÓÃÓÚÊÂÎñµÄÐ޸ģ¬ÒÔ±£³ÖËùÓÐÊý¾ÝµÄÍêÕûÐÔ¡£
3)&n ......
¹ØÓÚÏß³ÌÊÇJavaÓïÑÔÖкÜÖØÒªµÄÒ»¿é£¬ÔÚ³ÌÐòÖÐÓÐºÜ¶àµØ·½Ò²Ê¹ÓÃÏ̡߳£µ«ÊÇÕæÕý¿¼ÂÇÈçºÎÔÚÊʺϵij¡ºÏʹÓÃÏß³ÌÄØ£¿²ÉÓÃÏß³Ì×îÃ÷ÏԵľÍÊÇÓÃÓÚÒì²½²Ù×÷´¦Àí¡£ÄÇôΪºÎҪʹÓÃÒì²½·½Ê½ÄØ£¿
ÏÈÀ´½éÉÜÏÂΪʲôÓÐÁ˽ø³Ì£¬»¹ÐèÒªÏ̡߳£
µÚÒ»£º²¢ÐÐʵÌå¹²Ïíͬһ¸öµØÖ·¿Õ¼äºÍËùÓпÉÓÃÊý¾ÝµÄÄÜÁ¦¡£
µÚ¶þ£ºÏ̱߳Ƚø³Ì¸üÇáÁ¿¼¶£¬±È½ø³Ì¸ü ......