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