代理机制及特点
通过实现 InvocationHandler 接口创建自己的调用处理器;通过为 Proxy 类指定 ClassLoader 对象和一组 interface 来创建动态代理类;通过 反射机制获得动态代理类的 构造函数,其唯一参数类型是调用处理器接口类型;通过 构造函数创建动态代理类实例,构造时调用处理器对象作为参数被传入。
具体代码实现
interface A{
void eat();
}
class Person1 implements A{
public void eat() {
System.out.println("人吃肉");
}
}
public class Proxy1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
A a=new Person1();
((A) Proxy.newProxyInstance(a.getClass().getClassLoader(),new Class[] {A.class},new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("吃肉之前把作业写完");
Object object=method.invoke(a, args);
System.out.println("吃完肉去跑会步");
return object;
}
})).eat();;;
}
}