run reflection
2015-12-24 16:30
295 查看
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class Run_Refletion { public static void main(String[] args) { // TODO Auto-generated method stub AnimalProxy ap=new AnimalProxy(); Animal animal_dog=(Animal) ap.getInstance(new Dog()); animal_dog.say("Tom"); Animal animal_cat = (Animal) new AnimalProxy().getInstance(new Cat()); animal_cat.say("jeery","2"); } } interface Animal{ public void say(String name); public void say(String name,String age); } class Dog implements Animal{ @Override public void say(String name) { // TODO Auto-generated method stub System.out.println("hi ,i am "+name ); } public void say(String name,String age) { // TODO Auto-generated method stub System.out.println("hi ,i am "+name+"age:"+age ); } } class Cat implements Animal{ @Override public void say(String name) { // TODO Auto-generated method stub System.out.println("hi ,i'm "+name ); } public void say(String name,String age) { // TODO Auto-generated method stub System.out.println("hi ,i am "+name+"age:"+age ); } } class AnimalProxy implements InvocationHandler{ Object object; public Object getInstance(Object target){ this.object=target; return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this); } @Override public Object invoke(Object arg0, Method arg1, Object[] arg2) throws Throwable { // TODO Auto-generated method stub arg1.invoke(object, arg2); return null; } }
相关文章推荐
- java *** 制作圣诞贺卡
- Android多线程问题。android.os.NetworkOnMainThreadException
- itext setEncryption报错问题
- 宿州携手华为企业云 掀开大数据产业发展新篇章
- oc中的变量
- saltstack基础篇
- MD5加密
- java proxool系统设置
- convert2utf8withbom
- Ubuntu14搭建Hadoop2.5.2伪分布式开发环境
- NDK_omxcodec
- Android:单元测试
- 单链表的逆置
- android打包时 ***is not translated in zh错误,引用的其他库比如V7 ,value中的string 全部报错
- mapreduce文档汇总
- hdu 1757 I Hate It(线段树求区间最值)
- eclipse中出现ContainerBase.addChild: start: 的解决办法
- echarts之legend-改变图例的图标为自定义图片
- libssh2的简单应用
- 28个常用JavaScript方法集锦