【发布时间】:2015-11-20 11:11:55
【问题描述】:
我想知道是否有办法“手动”恢复this$0 的引用,换句话说,恢复到嵌套类中的外部类?
这意味着使用名称或methodOuterClass() 或OuterClass.this.Method() 引用外部类的任何方法或属性会导致NullPointerException。
由于下面列出的问题,例如Gson,在不引用外部类的情况下构造对象。创建对象后是否可以修复此问题?
参考文献
GSON does not deserialize reference to outer class
using member of outer class in a inner class makes null exception?
【问题讨论】:
-
您是否尝试过使用反射?即
Field field = Outer.Inner.class.getDeclaredField("this$0"); field.setAccessible(true); field.set(inner, outer); -
@BeyelerStudios 它有效,如果你想要功劳,请将其作为答案!
标签: java reflection