要实现一个内部类的反射应该和普通反射基本差不多吧,不过反射原理还是要遵循内部类的使用法则,还是要创建外部类对象,通过对象调用
示例代码:
public class Person{
class innerText{
private String name;
getXX,setXX
}
}
反射代码:
Class cla=Class.forName("oa.itheima.Person$innerText");//注意此处的类名,其实就是那个内部类对应字节码的class文件名吧
Constructor cons=cla.getConstructors()[0];//得到内部类的public够走函数,如果是private用下面一种
cons=cla.getDeclaredConstructors()[0];//
cons.setAccessible(true);
Object obj=Person.class.getConstructors()[0].newInstance();//此处要创建一个外部类对象,
Object oj=cons.newInstance(per);///创建内部类对象
setProperty(oj,"str", "xiaofen");//开始反射 |