初始化 Java 集合是否有任何主要缺点,例如声明时的 ArrayList,例如:
List<String> strList = new ArrayList<String>();
主要目的是在检索元素时避免空检查的混乱。
谢谢
初始化 Java 集合是否有任何主要缺点,例如声明时的 ArrayList,例如:
List<String> strList = new ArrayList<String>();
主要目的是在检索元素时避免空检查的混乱。
谢谢
一般来说,唯一的缺点是你可能最终会得到一大堆集合什么都不做,并且做了不必要的工作来创建集合。
我个人的偏好是始终分配一个有效的集合,除非有明确的理由避免内存和初始化开销,例如循环内和其他可能的性能考虑。如果我总是确保对象被初始化为非空值,我就不会在使用集合之前进行多余的空值检查。
我要添加的警告是确保您确实使用了您使用它的集合,并且不要在以后的代码中将其替换为全新的集合(这表明可能存在设计缺陷)。要强制执行此操作,您可以将集合声明为最终集合。
这取决于用例:
null
。在第一种情况下,我做到了,final
并且更喜欢在构造函数中进行初始化。如果可能的话null
,我添加一个惰性吸气剂并使用@Nullable
如下注释: @Nullable
List<String> strList;
...
public final List getList(){
if(strList == null){
strList = new ArrayList();
}
return strList;
}
这种技术可以帮助我消除场状态的歧义。
您几乎应该总是立即初始化。仅仅因为它被初始化并不意味着你不应该再做空检查。创建对象和 if 检查对性能几乎没有影响。仅当您创建的列表必须从其他集合或数组中复制对象时