Java Reflection (JAVA·´Éä) Ïê½â
JavaÓïÑÔ·´ÉäÌṩһÖÖ¶¯Ì¬Á´½Ó³ÌÐò×é¼þµÄ¶à¹¦ÄÜ·½·¨¡£ËüÔÊÐí³ÌÐò´´½¨ºÍ¿ØÖÆÈκÎÀàµÄ¶ÔÏó(¸ù¾Ý°²È«ÐÔÏÞÖÆ)£¬ÎÞÐèÌáǰӲ±àÂëÄ¿±êÀà¡£ÕâÐ©ÌØÐÔʹµÃ·´ÉäÌØ±ðÊÊÓÃÓÚ´´½¨ÒԷdz£ÆÕͨµÄ·½Ê½Óë¶ÔÏóÐ×÷µÄ¿â¡£ÀýÈ磬·´Éä¾³£ÔÚ³ÖÐø´æ´¢¶ÔÏóΪÊý¾Ý¿â¡¢XML»òÆäËüÍⲿ¸ñʽµÄ¿ò¼ÜÖÐʹÓá£Java reflection ·Ç³£ÓÐÓã¬ËüʹÀàºÍÊý¾Ý½á¹¹Äܰ´Ãû³Æ¶¯Ì¬¼ìË÷Ïà¹ØÐÅÏ¢£¬²¢ÔÊÐíÔÚÔËÐÐ×ŵijÌÐòÖвÙ×÷ÕâЩÐÅÏ¢¡£Java µÄÕâÒ»ÌØÐԷdz£Ç¿´ó£¬²¢ÇÒÊÇÆäËüһЩ³£ÓÃÓïÑÔ£¬Èç C¡¢C++¡¢Fortran »òÕß Pascal µÈ¶¼²»¾ß±¸µÄ¡£
µ«·´ÉäÓÐÁ½¸öȱµã¡£µÚÒ»¸öÊÇÐÔÄÜÎÊÌâ¡£ÓÃÓÚ×ֶκͷ½·¨½ÓÈëʱ·´ÉäÒªÔ¶ÂýÓÚÖ±½Ó´úÂë¡£ÐÔÄÜÎÊÌâµÄ³Ì¶ÈÈ¡¾öÓÚ³ÌÐòÖÐÊÇÈçºÎʹÓ÷´ÉäµÄ¡£Èç¹ûËü×÷Ϊ³ÌÐòÔËÐÐÖÐÏà¶ÔºÜÉÙÉæ¼°µÄ²¿·Ö£¬»ºÂýµÄÐÔÄܽ«²»»áÊÇÒ»¸öÎÊÌâ¡£¼´Ê¹²âÊÔÖÐ×Çé¿öϵļÆÊ±Í¼ÏÔʾµÄ·´Éä²Ù×÷Ö»ºÄÓü¸Î¢Ãë¡£½ö·´ÉäÔÚÐÔÄܹؼüµÄÓ¦ÓõĺËÐÄÂß¼ÖÐʹÓÃʱÐÔÄÜÎÊÌâ²Å±äµÃÖÁ¹ØÖØÒª¡£
Ðí¶àÓ¦ÓÃÖиüÑÏÖØµÄÒ»¸öȱµãÊÇʹÓ÷´Éä»áÄ£ºý³ÌÐòÄÚ²¿Êµ¼ÊÒª·¢ÉúµÄÊÂÇé¡£³ÌÐòÈËԱϣÍûÔÚÔ´´úÂëÖп´µ½³ÌÐòµÄÂß¼£¬·´ÉäµÈÈÆ¹ýÁËÔ´´úÂëµÄ¼¼Êõ»á´øÀ´Î¬»¤ÎÊÌâ¡£·´Éä´úÂë±ÈÏàÓ¦µÄÖ±½Ó´úÂë¸ü¸´ÔÓ£¬ÕýÈçÐÔÄܱȽϵĴúÂëʵÀýÖп´µ½µÄÒ»Ñù¡£½â¾öÕâЩÎÊÌâµÄ×î¼Ñ·½°¸ÊDZ£ÊصØÊ¹Ó÷´Éä——½öÔÚËü¿ÉÒÔÕæÕýÔö¼ÓÁé»îÐԵĵط½——¼Ç¼ÆäÔÚÄ¿±êÀàÖеÄʹÓá£
¡¡ 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(
Ïà¹ØÎĵµ£º
1¡£Ê¹ÓÃjava.util.PropertiesÀàµÄload()·½·¨
ʾÀý£º InputStream in = lnew BufferedInputStream(new FileInputStream(name));
Properties p = new Properties();
p.load(in);
2¡£Ê¹ÓÃjava.util.ResourceBundleÀàµÄgetBundle()·½·¨
ʾÀý£º ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());
......
package com.joe;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test
{
//½«×Ö·û´®µÄÊý×Ö×Ö·ûÊä³ö
public static void main(String[] args)
{
String str = "iu7i8hy4j ......
ÕæÕý·¢ÏÖÈËÉúÐèҪ֪ʶµÄʱºò£¬ÎÒµÄÇà´ºÒѾÀË·ÑÁËÒ»°ë¡£
ÓÚÊÇ¹ÄÆðÓÂÆøÀ´µ½±±´óÇàÄñѧϰIT£¬¼øÓÚ¶à·½¿¼ÂÇ£¬»¹ÊÇÑ¡ÔñÁËÈí¼þ²âÊÔ¡£
Èç½ñ¿ÎÒµµÄÒ»´ó°ëÒ²ÒѽáÊø£¬´Ó¸Õ¿ªÊ¼µÄÒ»ÎÞËùÖª£¬½¥½¥³É³¤ÎªÒ»¸ö²ËÄñ……
Ôڿγ̵Äѧϰ¹ý³ÌÖУ¬²Å½¥½¥·¢ÏÖ×Ô¼º¶ÔÓÚÕâ¸öÐÐÒµµÄÐËȤ£¬ÓÈÆäÊÇÈí¼þ¿ª·¢ÕâÒ»¿é¡£
ÉõÖÁ¶Ô×Ô¼ºÑ¡Ôñ×ö²â ......
JavaÓï·¨×ܽá - Ïß³Ì
Ò»Ìáµ½Ï̺߳ÃÏñÊǼþºÜÂé·³ºÜ¸´ÔÓµÄÊ£¬ÊÂʵÉÏȷʵÈç´Ë£¬Éæ¼°µ½Ï̵߳ıà³ÌÊǺܽ²¾¿¼¼Çɵġ£Õâ¾ÍÐèÒªÎÒÃDZ任˼ά·½Ê½£¬Á˽âÏ̻߳úÖÆµÄ±È½ÏͨÓõļ¼ÇÉ£¬Ð´³ö¸ßЧµÄ¡¢²»ÒÀÀµÓÚij¸öJVMʵÏֵijÌÐòÀ´¡£±Ï¾¹½ö½ö¾ÍJava¶øÑÔ£¬¸÷¸öÐéÄâ»úµÄʵÏÖÊDz»Í¬µÄ¡£Ñ§Ï°Ïß³Ìʱ£¬×îÁîÎÒÓ¡ÏóÉî¿ÌµÄ¾ÍÊÇÄÇÖÖ²»È·¶¨ÐÔ¡¢Ã»Óб£ ......
Ò»ÖøÃûÈí¼þ¹«Ë¾µÄjava±ÊÊÔËã·¨Ì⣡(2008-11-06 12:49:19)±êÇ©£ºjava ÃæÊÔÌâ it ·ÖÀࣺJ2SE
ÔÌâÈçÏ£ºÓÃ1¡¢2¡¢2¡¢3¡¢4¡¢5ÕâÁù¸öÊý×Ö£¬ÓÃjavaдһ¸ömainº¯Êý£¬´òÓ¡³öËùÓв»Í¬µÄÅÅÁУ¬È磺512234¡¢412345µÈ£¬ÒªÇó£º "4 "²»ÄÜÔÚµÚÈý룬 "3 "Óë "5 "²»ÄÜÏàÁ¬.
ÎÒ¿´ÁË»ØÌù¶¼Ã»Óкܺýâ¾ö£¬Ö÷ÒªÊÇûÓÐÅųýÖ ......