让我们假设某些类不可访问,但是该类生成的另一个匿名类是可以访问的。可以通过垃圾收集器删除第一个吗?
示例:
class Outer {
public Object getInner() {
return new Object() {};
}
}
...
Outer outer = new Outer();
Object inner = outer.getInner();
// Could the "outer" instance be removed here considering that "inner" is using below?
答案 0 :(得分:8)
不,在这种情况下外部实例仍然可以访问,因为每个非静态内部类都对其外部类实例具有隐式rerefence。