不只是Android开发人员…
非静态内部类始终保留对封闭对象的隐式引用。如果您不需要该参考,则只需花费成本即可。考虑一下:
class Outer { class NonStaticInner {} static class StaticInner {} public List<Object> foo(){ return Arrays.asList( new NonStaticInner(), new StaticInner()); }}编译时,您将得到如下内容:
class Outer { Outer(){} public List<Object> foo(){ return Arrays.asList( new Outer$NonStaticInner(this), new StaticInner()); }}class Outer$NonStaticInner { private final Outer this$0; Outer$NonStaticInner(Outer enclosing) { this$0 = enclosing; }}class Outer$StaticInner { Outer$StaticInner(){}}


