java 接口代理

接口
public interface Cc {
   void say();
}
实现类:
public class C  implements  Cc{
    @Override
    public void say() {
        System.out.println("good");
    }
}

代理类:
public class ProxyTest implements InvocationHandler {
    //真实对象
    private Cc targent;

    public Cc  getPerson(Cc targent){
        this.targent=targent;
        Class<?> clazz=targent.getClass();
        return (Cc) Proxy.newProxyInstance(clazz.getClassLoader(),clazz.getInterfaces(),this);
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        Object obj = method.invoke(this.targent, args);
        return obj;
    }
}




测试结果:

     ProxyTest proxyTest=new ProxyTest();
//只对Cc接口进行代理
        Cc cc = proxyTest.getPerson(new C());
        cc.say();

 

posted @ 2021-04-04 11:53  余生请多指教ANT  阅读(156)  评论(0编辑  收藏  举报