您的位置:首页 > 其它

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;
}

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