Java·´Éä»úÖÆ
·´Éä»úÖÆ:ËùνµÄ·´Éä»úÖƾÍÊÇjava
ÓïÑÔÔÚÔËÐÐʱӵ
ÓÐÒ»Ïî×Ô¹ÛµÄÄÜÁ¦¡£Í¨¹ýÕâÖÖÄÜÁ¦¿ÉÒÔ³¹µ×µÄÁ˽â×ÔÉíµÄÇé¿öΪÏÂÒ»²½µÄ¶¯×÷×ö×¼±¸¡£ÏÂÃæ¾ßÌå½éÉÜÒ»ÏÂjava
µÄ·´Éä»úÖÆ¡£ÕâÀïÄ㽫µß¸²ÔÀ´¶ÔjavaµÄÀí½â¡£
JavaµÄ·´Éä»úÖƵÄʵÏÖÒª½èÖúÓÚ4¸öÀࣺclass£¬Constructor£¬Field£¬Method£»ÆäÖÐclass´ú±íµÄʱÀà¶Ô
Ïó£¬Constructor£ÀàµÄ¹¹ÔìÆ÷¶ÔÏó£¬Field£ÀàµÄÊôÐÔ¶ÔÏó£¬Method£ÀàµÄ·½·¨¶ÔÏó¡£Í¨¹ýÕâËĸö¶ÔÏóÎÒÃÇ¿ÉÒÔ´ÖÂԵĿ´µ½Ò»¸öÀàµÄ¸÷¸ö×é
³É²¿·Ö¡£
Class£º³ÌÐòÔËÐÐʱ£¬javaÔËÐÐʱϵͳ»á¶ÔËùÓеĶÔÏó½øÐÐÔËÐÐʱÀàÐ͵Ĵ¦Àí¡£ÕâÏîÐÅÏ¢¼Ç¼ÁËÿ¸ö¶ÔÏóËùÊôµÄÀ࣬ÐéÄâ»úͨ³£Ê¹ÓÃÔËÐÐʱÀàÐÍÐÅÏ¢
Ñ¡ÔñÕý
È·µÄ·½·¨À´Ö´ÐУ¨Õª×Ô£º°×ƤÊ飩¡£µ«ÊÇÕâЩÐÅÏ¢ÎÒÃÇÔõôµÃµ½°¡£¬¾ÍÒª½èÖúÓÚclassÀà¶ÔÏóÁË°¡¡£ÔÚObjectÀàÖж¨ÒåÁËgetClass()·½·¨¡£ÎÒ
ÃÇ¿ÉÒÔͨ¹ýÕâ¸ö·½·¨»ñµÃÖ¸¶¨¶ÔÏóµÄÀà¶ÔÏó¡£È»ºóÎÒÃÇͨ¹ý·ÖÎöÕâ¸ö¶ÔÏó¾Í¿ÉÒԵõ½ÎÒÃÇÒªµÄÐÅÏ¢ÁË¡£
±ÈÈ磺ArrayList arrayList;
Class clazz = arrayList.getClass();
È»ºóÎÒÀ´´¦ÀíÕâ¸ö¶ÔÏóclazz¡£
µ±È»ÁËClassÀà¾ßÓкܶàµÄ·½·¨£¬ÕâÀïÖص㽫ºÍConstructor£¬Field£¬MethodÀàÓйØϵµÄ·½·¨¡£
Reflection ÊÇ Java ³ÌÐò¿ª·¢ÓïÑÔµÄÌØÕ÷Ö®Ò»£¬ËüÔÊÐíÔËÐÐÖÐµÄ Java
³ÌÐò¶Ô×ÔÉí½øÐмì²é£¬»òÕß˵“×ÔÉ󔣬²¢ÄÜÖ±½Ó²Ù×÷³ÌÐòµÄÄÚ²¿ÊôÐÔ¡£Java
µÄÕâÒ»ÄÜÁ¦ÔÚʵ¼ÊÓ¦ÓÃÖÐÒ²ÐíÓõò»ÊǺܶ࣬µ«ÊǸöÈËÈÏΪҪÏë¶ÔjavaÓиö¸ü¼ÓÉîÈëµÄÁ˽⻹ÊÇÓ¦¸ÃÕÆÎյġ£
1£®¼ì²âÀࣺ
reflectionµÄ¹¤×÷»úÖÆ
¿¼ÂÇÏÂÃæÕâ¸ö¼òµ¥µÄÀý×Ó£¬ÈÃÎÒÃÇ¿´¿´ 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.ArrayList
Õâ¸ö³ÌÐòʹÓà Class.forName ÔØÈëÖ¸¶¨µÄÀ࣬Ȼºóµ÷Óà getDeclaredMethods
À´»ñÈ¡Õâ¸öÀàÖж¨ÒåÁ˵ķ½·¨ÁÐ±í¡£java.lang.reflect.Methods ÊÇÓÃÀ´ÃèÊöij¸öÀàÖе¥¸ö·½·¨µÄÒ»¸öÀà¡£
JavaÀà·´ÉäÖеÄÖ÷Òª·½·¨
¶ÔÓÚÒÔÏÂÈýÀà×é¼þÖеÄÈκÎÒ»ÀàÀ´Ëµ -- ¹¹Ô캯Êý¡¢×ֶκͷ½·¨ -- java.lang.Class
ÌṩËÄÖÖ¶ÀÁ¢µÄ·´Éäµ÷Óã¬ÒÔ²»Í¬µÄ·½Ê½À´»ñµÃÐÅÏ¢¡£µ÷Óö¼×ñÑÒ»ÖÖ
Ïà¹ØÎĵµ£º
µ±Ç°ÔÚ½øÐеÄÏîÄ¿ÖУ¬ÔÚʹÓÃsplit·½·¨Ê±Óöµ½Ò»¸ö±È½ÏÒþ±ÎµÄÎÊÌ⣬×îºóÎÊÌâ½â¾öÁË£¬µÃµ½µÄÒ»¸öÆôµÏ¾ÍÊÇÔÚʹÓÃÕâЩº¯Êýʱ£¬ÕæµÄÐèÒªÈÏÕæ²Î¿¼Îĵµ£¬¶¼¹Ö×Ô¼ºÌ«´ÖÐÄ£¬ÏÂÃæ×ܽáÒ»ÏÂÒÔ¼ÓÉî¼ÇÒä
ÎÊÌâÃèÊö£º
´ÓÊý¾Ý¿â·µ»ØµÄÊý¾Ý´®£¬ÐèÒª¼ÆËãÊý¾ÝµÄ¸ö ......
´úÂë¿é£º¾ÍÊÇÓÃ{}À¨ÆðÀ´µ½²¿·Ö¡£¸ù¾ÝÓ¦ÓõIJ»Í¬·ÖΪ4Àà:ÆÕͨ´úÂë¿é¡¢¹¹Ôì¿é¡¢¾²Ì¬´úÂë¿é¡¢Í¬²½´úÂë¿é¡£
1.ÆÕͨ´úÂë¿é£º¶¨ÒåÔÚ·½·¨ÖеĴúÂë¿é¡£
È磺
public class Ex22 {
public static void main(String[] args){
// ÆÕͨ´úÂë¿é
{
int i = 3;
System ......
Ãô½Ý¿ª·¢µÄÀíÄîÒѾÁ÷ÐÐÁ˺ܳ¤µÄʱ¼ä£¬ÔÚÃô½Ý¿ª·¢ÖеĿª·¢µü´ú½×¶ÎÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ýÎå¸ö²½Ö裬À´ÓÐЧµÄÌá¸ßÕû¸öÏîÄ¿µÄ´úÂëÖÊÁ¿¡£
JavaÏîÄ¿¿ª·¢¹ý³ÌÖУ¬ÓÉÓÚ¿ª·¢ÈËÔ±µÄ¾Ñé¡¢Java´úÂë±àдϰ¹ß£¬ÒÔ¼°È±·¦Í³Ò»µÄ±ê×¼ºÍ¹ÜÀíÁ÷³Ì£¬ÍùÍùµ¼ÖÂÕû¸öÏîÄ¿µÄ´úÂëÖÊÁ¿½Ï²î£¬ÄÑÓÚά »¤£¬ÐèÒª½Ï´óµÄ²âÊÔͶÈëºÍÖÜÆÚµÈÎÊÌâ¡£ÕâЩÎÊÌâÔÚÒ»¸öÏ ......
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com ......