黑马程序员技术交流社区
标题:
Java 能否多重反射
[打印本页]
作者:
三生石
时间:
2014-3-5 21:10
标题:
Java 能否多重反射
Java反射机制能否支持多重反射。
如,动态invoke一个方法里还有一个invoke
求大牛详解!
若不能,有没有其它偏方可以实现这种效果?
作者:
榨菜
时间:
2014-3-5 22:35
interface Animal{
void eat();
}
public class Test {
/**
* 在方法中定义方法,我想到的只有内部类。 所以我先定义一个接口Animal 然后方法的内部类Person继承了Animal。
*
* 在Test类中中method方法中 定义Person类 并且返回的是Person的对象。
*
* 然后在main函数用反射的方法获得Test的方法-----method方法 ---执行--- 获得内部类引用。
* Animal animal = (Animal) methodTest.invoke(null);
*
* 然后对这个再进行反射,然后执行里面的eat方法。
*
* 总共实现了两次invoke
*
* 打印出:Person---to eat
*
* 还请多多指教
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Method methodTest = Test.class.getMethod("method");
Animal animal = (Animal) methodTest.invoke(null);
Method methodAnimal = animal.getClass().getMethod("eat");
methodAnimal.invoke(animal);
}
//在方法里面定义了一个Person类
public static Animal method(){
class Person implements Animal{
@Override
public void eat() {
System.out.println("Person---to eat");
}
}
Person person = new Person();
return person;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2