在JDK中使用代理的时,主要用到了java.lang.reflect.Proxy和java.lang.reflect.InvocationHandler 这两个类,分析:
(一)、Proxy主要作用是通过字节码重组生成一个新的对象(Proxy.newProxyInstance(ClassLoader , Class<?> [] interfaces,InvocationHandler) ),因此我们可以新写一个LocalProxy 类,类中包含 方法 Object newProxyInstance(类加载器,对象接口,处理器)
public static Object newProxyInstance(LocalClassLoader classLoader, Class<?>[] interfaces, LocalInvocationHandler h) throws Exception{
1、动态生成源代码(.java)文件的内容。(代码内容可参照JDK的Proxy自动生成的$Proxy0的内容)
——>StringBuffer拼接$Proxy0中的内容
2、将.java内容输出到磁盘中
——>比较简单此处不写
3、编译磁盘中的.java文件生成.class文件
JavaCompiler jc = ToolProvider.getSystemJavaCompiler();
StandardJavaFi