Java Dynamic Proxy
import java.lang.reflect.*;
public class A extends Thread {
public static void main(String[] args) throws Exception{
CC cc = new CC();
HH hh = new HH(cc);
II ii = (II) Proxy.newProxyInstance(HH.class.getClassLoader(),
new Class[]{II.class},
hh);
System.out.println ("" + ii.getClass().getName());
ii.test();
}
}
interface II {
void test();
}
class CC implements II {
public void test() {
System.out.println ("this is cc");
}
}
class HH implements InvocationHandler {
Object obj;
HH(Object obj) {
this.obj = obj;
}
public Object invoke(Object obj, Method m, Object[] args) throws Exception {
System.out.println ("start");
Object o = m.invoke(this.obj, args);
System.out.println ("end");
return o;
}
}
ÔËÐÐʱ¼ÓÈë -Dsun.misc.ProxyGenerator.saveGeneratedFiles=true£¬¿ÉÒԵõ½proxy class¡£
²Î¿¼£ºhttp://www.javablogging.com/what-is-java-dynamic-proxies-api/
Ïà¹ØÎĵµ£º
Javaѧϰ´ÓÈëÃŵ½¾«Í¨
Ò»¡¢ JDK (Java Development Kit)
JDKÊÇÕû¸öJavaµÄºËÐÄ£¬°üÀ¨ÁËJavaÔËÐл·¾³£¨Java Runtime Envirnment£©£¬Ò»¶ÑJava¹¤¾ßºÍJava»ù´¡µÄÀà¿â(rt.jar)¡£²»ÂÛʲôJavaÓ¦Ó÷þÎñÆ÷ʵÖʶ¼ÊÇÄÚÖÃÁËij¸ö°æ±¾µÄJDK¡£Òò´ËÕÆÎÕJDKÊÇѧºÃJavaµÄµÚÒ»²½¡£×îÖ÷Á÷µÄJ ......
import java.io.File;
/**
* @description <p>java ·¾¶</p>
* @author swandragon
* @date Nov 5, 2009
*/
public class FilePath{
/**
* ¿ª·¢Öв»ÒªÊ¹ÓÃSystem.getProperty("user.dir")»ñÈ¡µ±Ç°Óû§Ä¿Â¼µÄÏà¶Ô·¾¶
* Ò²¾¡¿ÉÄܲ»ÒªÊ¹Óþø¶Ô·¾¶£¬Ê¹Óþø¶Ô·¾¶Ê±¿ÉÒÔÔÚÅäÖÃÎļþÖÐ ......
ÎÄ˼ÐÅÏ¢¼¼ÊõÓÐÏÞ¹«Ë¾www.vanceinfo.com£¨Å¦½»ËùÉÏÊдúÂ룺VIT£©³ÉÁ¢ÓÚ1995Ä꣬ÊÇÒ»¼ÒÐÅÏ¢¼¼Êõ·þÎñÌṩÉ̼°ÔÚÖйú¾ÓÁìÏȵØÎ»µÄÀë°¶Èí¼þ¿ª·¢¹«Ë¾Ö®Ò»¡£ÎÄ˼ÊǵÚÒ»¼ÒÔÚŦԼ¹ÉƱ½»Ò×ËùÉÏÊеÄÖйúÈí¼þ·þÎñÍâ°üÆóÒµ¡£¾Ý¹ú¼ÊÊý¾Ý¹«Ë¾(IDC)µÄͳ¼Æ, ÒÔ2007ÄêÏúÊÛ¶îºâÁ¿, ÎÄ˼ÐÅÏ¢¼¼ÊõÔÚΪŷÃÀÊг¡ÌṩÀë°¶Èí¼þ¿ª·¢ÐÐÒµÖÐλ¾ÓÖйúµÚÒ ......
ÎÒÏÖÔÚÊÇÈí¼þѧԺ´ó¶þµÄѧÉú£¬ÎÒÃÇѧµÄ½Ì²ÄÊÇ¡¶JavaÓïÑÔ³ÌÐòÉè¼Æ¡·£¬ÏÖÔÚѧµÄÊǽø½×ƪ£¬¿ÉÊÇÎҸоõºÃÏñ»¹ÊÇʲô¶¼²»»á°¡£¡Èç¹ûÕæ¸øÎÒÒ»¸öÌâÄ¿ÈÃÎÒ×Ô¼ºÈ¥×ö£¬ÎÒÏëÎÒ»á×ö²»³öÀ´¡£²»¹ýÈç¹û¿´×ÅÊéȥʵÏÖÒ»¸ö¹¦ÄÜÎÒ»¹ÒªÏëºÜ¾Ã²Å»á×ö³öÀ´£¬Ò²ÐíÊÇÎÒѧϰ»¹²»¹ýÈÏÕæ£¬×Ô¼º¶¯ÊÖµÄÄÜÁ¦»¹Ã»ÓÐÑø³É£¬Ò²ÐíÊÇÎÒ´ ......