invocationHandler动态代理的使用
2016-05-11 17:01
197 查看
package org.podger.javabean; public interface IPeople { void say(); }
package org.podger.javabean; public class Student implements IPeople{ public void say() { System.out.println("I am a Student!"); } }
package org.podger.javabean; public class Teacher implements IPeople { public void say() { System.out.println("I am a Teacher!"); } }
package org.podger.javabean; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class DncProxy implements InvocationHandler { Object obj; Object bind(Object obj){ this.obj = obj; return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this); } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { return method.invoke(obj, args); } }
package org.podger.javabean; public class DncProxyTest { public static void main(String[] args) { IPeople student = (IPeople)new DncProxy().bind(new Student()); IPeople teacher = (IPeople)new DncProxy().bind(new Teacher()); student.say(); teacher.say(); } }可以看到通过实现invocationHandler接口来实现动态代理依赖对象接口.
相关文章推荐
- Hibernate的@TableGenerator
- 寻找和为定值的多个数
- nodejs __dirname 与 process.cwd(); 的区别
- POJ3067 树状数组 情景转化为区间求和
- 采样定理说的是什么?
- MSSQL通过SQL语句实现发邮件
- javascript实例学习之六—百叶窗效果
- 在Win10上发布Meteor应用
- android开发 更新下载apk部分机型文件写入失败(Permission denied)
- 实现两个字符串的乘法
- 设计模式总结
- 多速率变换信号处理概述(插值,抽取)
- Hadoop之仿写搜索引擎
- 释放LINUX CACHEC的 小脚本
- ELK集群部署及收集nginx日志
- poj1276Cash Machine【多重背包模板题】
- 【OGG】GoldenGate For Oracle实施文档 --超详细总结版
- iscroll不能滑动的一个原因
- Android DES MD5 UTF—8 BASE64 加密解密
- froala富文本编辑器的相关