jdk动态代理

package jdk动态代理;

public interface 一个接口 {
    public void sys();
    
}

package jdk动态代理;

public class 一个类  implements 一个接口{

    @Override
    public void sys() {
        // TODO 自动生成的方法存根
        System.out.println("1");
        
    }

}

package jdk动态代理;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class 动态代理类 implements InvocationHandler{
    Object obj = null;
    public Object s(Object obj) {
        this.obj= obj;
        return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this);
    }
    @Override
    public Object invoke(Object arg0, Method arg1, Object[] arg2) throws Throwable {
        // TODO 自动生成的方法存根
        Object obj = arg1.invoke(this.obj, arg2);
        return null;
    }
    
}


package jdk动态代理;

public class 实现类 {
    public static void main(String[] args) {
        动态代理类 d = new 动态代理类();
        一个接口 y = (一个接口) d.s(new 一个类());
        y.sys();
    }
}

 

posted @ 2018-09-15 22:05  萧愬夜  阅读(108)  评论(0)    收藏  举报