这两种向bean属性添加列表的方法有什么区别吗?
private List<String> stringList;
public List<String> getStringList() {
return stringList;
}
public void setStringList(final List<String> stringList) {
this.stringList = stringList;
}
setStringList(list of strings)
getStringList().addAll(list of strings)
答案 0 :(得分:4)
如果列表已经包含条目,那么这些条目将被方法1覆盖,因为您设置了一个全新的列表实例。
使用方法2,您只需将所有新条目添加到现有列表实例中。
答案 1 :(得分:0)
在第一种方法中,使用提供的列表初始化整个stringList
。
但在第二种方法中,新列表的所有元素都会添加到现有的stringList
。
答案 2 :(得分:0)
是的,存在很大差异,第一种方法是正确的。这就是原因:
set
列表而不是添加元素。如果您想要add
,则可以展示其他方法,例如addStrings()
NullPointerException
,则第二种方法将抛出null
(如果对象是新创建的,并且list
未分配任何值,则可能会出现这种情况)详情阅读getters
和setters
here。