001一个内部类的实例拿到所在外部类的实例(反射)

网友投稿 789 2022-09-08

001一个内部类的实例拿到所在外部类的实例(反射)

001一个内部类的实例拿到所在外部类的实例(反射)

代码实现:给一个内部类对象,如何通过反射,去获取所依靠的外部类对象的某个成员变量并打印出来。

public class A{ int age=10; class B { }}

public class Main{ public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { A a=new A(); A.B b=a.new B(); Class bClass=b.getClass(); Field field=bClass.getDeclaredField("this$0"); A outClass=(A)field.get(b);//get(Object obj) 返回指定对象obj上此 Field 表示的字段的值 Field age=outClass.getClass().getDeclaredField("age"); System.out.println(outClass); }}

知识点扩展:  this$0就是内部类所自动保留的一个指向所在外部类的引用。

public class Outer{//this$0 public class FirstInner {//this$1 public class SecondInner {//this$2 public class ThirdInner { } } }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:PyCharmLearningProject摘要(查阅备用)(pycharmprojects)
下一篇:使用皕杰报表遇到的问题小结
相关文章

 发表评论

暂时没有评论,来抢沙发吧~