深入理解 动态代理+反射
来源:互联网 发布:股票提醒软件 换手率 编辑:程序博客网 时间:2024/06/05 15:15
上动态代理的代码
首先接口类
public interface Moveable {void move();}实现类
public class Tank implements Moveable {public void move() {// TODO Auto-generated method stubSystem.out.println("Tank begin Moving...");System.out.println("Tank end Moving...");}}代理类
public class DomProxy implements InvocationHandler {public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {Moveable t = new Tank();return method.invoke(t, args);}}动态代理代码
InvocationHandler h = new DomProxy();Moveable t=(Moveable)Proxy.newProxyInstance(Moveable.class.getClassLoader(), Tank.class.getInterfaces(), h);t.move();接下来我们把代理类修改下加入反射
public class NewProxy implements InvocationHandler {private String serviceName;public NewProxy(String service){this.serviceName=service;}public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {Class classType = Class.forName(serviceName); Object obj = classType.newInstance(); return method.invoke(obj, args);}}此时可以看到代理类中并没有实际类的代码了,而是根据传入的类名通过反射生成实例来实现的。
此时的动态代理代码如下:
InvocationHandler h1 = new NewProxy(Tank.class.getName());Moveable t1=(Moveable)Proxy.newProxyInstance(Moveable.class.getClassLoader(), Tank.class.getInterfaces(), h);t1.move();
阅读全文
0 0
- 深入理解 动态代理+反射
- 深入理解java动态代理
- 深入理解JDK动态代理
- 深入理解 Java 动态代理
- java反射和动态代理的理解
- java中的反射三(反射机制深入---静态代理,动态代理及cglib动态代理)
- 深入理解JDK动态代理机制
- 深入理解JAVA JDK动态代理机制
- 深入理解 jdk 动态代理的实现
- 深入理解java动态代理机制
- 深入理解JAVA JDK动态代理机制
- 深入源码理解-java动态代理
- 深入理解Java的动态代理
- 深入理解JDK动态代理机制
- 代理,动态代理,反射
- 代理,动态代理,反射
- 深入学习Java的反射与动态代理机制
- java类加载,反射,动态代理入门理解
- Android Binder机制详解:手写IPC通信
- 插入排序
- luogu P2697 宝石串
- Lintcode99 Reorder List solution
- iOS 十六进制颜色码转换成RGB颜色值
- 深入理解 动态代理+反射
- 2017杭电多校第四场 1011 Time To Get Up(模拟)HDU 6077
- spring security的原理及教程
- IOS UITest自动化测试
- 关于深度学习优化器 optimizer 的选择,你需要了解这些
- android异步更新UI
- 手写matlab的弗洛伊德算法的函数(注释很详细)
- [iOS sql数据库] 根据多个条件update数据
- bzoj3195[Jxoi2012]奇怪的道路 状压DP