您的位置:首页 > 编程语言 > Java开发

JDK动态代理

2015-11-23 12:49 411 查看
import java.lang.reflect.*;

public class JDKProxySupport implements InvocationHandler {

private Object targetObj, proxyObj;

public JDKProxySupport() {

}

public JDKProxySupport(Object target) {

targetObj = target;

// 生成代理

proxyObj = Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this);

}

@Override

public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

System.out.println("在方法之前做了点事情");

Object obj = method.invoke(targetObj, args);

System.out.println("在方法之后做了点事情");

return obj;

}

public Object getProxyObj() {

return proxyObj;

}

public static void main(String[] args) {

JDKProxySupport ps = new JDKProxySupport(new TestProxy());

TestProxyInterface test = (TestProxyInterface) ps.getProxyObj();

test.doSomething();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: