1、定义一个接口类
public interface Animal {
public void run();
public void eat();
}
2 、接口对应的实现类
public class Dog implements Animal {
@Override
public void run() {
System.out.println("狗狗在跑");
}
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("狗狗在吃");
}
}
3、代理中间类
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class MyInvocation implements InvocationHandler {
private Object obj;
public MyInvocation(Object obj)
{
this.obj = obj;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// TODO Auto-generated method stub
System.out.println(method.getName());
method.invoke(obj, args);
return null;
}
}
4、测试代理类
import java.lang.reflect.Proxy;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Dog dog=new Dog();
MyInvocation myInvocation=new MyInvocation(dog);
Animal animal= (Animal) Proxy.newProxyInstance(dog.getClass().getClassLoader(), dog.getClass().getInterfaces(), myInvocation);
animal.eat();
}
}