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

回到顶部