Android为什么偏爱静态类
我看到了很多Java代码,其中android更愿意让开发人员使用静态内部类。特别是对于自定义ListAdapters中的ViewHolder
Pattern之类的模式。
我不确定静态类和非静态类之间的区别。我已经读过它,但是在考虑性能或内存占用时似乎没有任何意义。
回答:
不只是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(){}
}
以上是 Android为什么偏爱静态类 的全部内容, 来源链接: utcz.com/qa/418244.html


