java动态代理一直觉得是个深奥研究,之前一直不曾研究过。不过现在刚刚研究一会就发现其果然强大。
动态实现接口:
1、待实现的接口
public interface IUser {
String getName(String id);
}
2、代理处理类
这个主要是用来代理或实现接口的类,必须实现InvocationHandler
只要实现了invoke方法即可
class MyInvocationHandler implements InvocationHandler{
public MyInvocationHandler() {
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println(method.getName());
System.out.println(args[0]);
return null;
}
}
3、测试代码
public static void main(String[] args) throws IOException, NoSuchMethodException {
IUser instance = (IUser) Proxy.newProxyInstance(IUser.class.getClassLoader(), new Class[]{IUser.class}, new MyInvocationHandler());
instance.getName("wang");
}
结果:
自此,一个动态代理的小例子就完成了。当然更复杂的逻辑也是类似的几步。
尊重作者,转载请注明出处!
版权申明:本文版权归作者所有,未经授权,任何单位或个人不得以任何形式转载、摘编或利用其它方式使用本博客内容。作者保留追究相关法律责任的权利。如需使用博客内容,请与作者联系获得授权。感谢对本文的尊重与支持。
免责声明:本网站所载内容仅供参考,不构成任何专业建议。用户基于本网站内容作出的决策,风险自担。对于因使用本网站内容而产生的任何直接或间接损失,本网站不承担任何责任。请用户审慎判断,理性使用。