假设某个类不可访问,但该类生成的另一个匿名类是可访问的。第一个可以被垃圾收集器删除吗?
例子:
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?
最佳答案
不,在这种情况下外部实例仍然可以访问,因为每个非静态内部类都有对其外部类实例的隐式引用。
关于Java 匿名类和垃圾收集器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9530901/