Java 使用getter和setter方法将列表添加到bean属性之间的区别?
这两种向bean属性添加列表的方法有什么区别吗Java 使用getter和setter方法将列表添加到bean属性之间的区别?,java,collections,javabeans,Java,Collections,Javabeans,这两种向bean属性添加列表的方法有什么区别吗 private List<String> stringList; public List<String> getStringList() { return stringList; } public void setStringList(final List<String> stringList) { this.stringList = stringList; } 私有列表stringList
private List<String> stringList;
public List<String> getStringList() {
return stringList;
}
public void setStringList(final List<String> stringList) {
this.stringList = stringList;
}
私有列表stringList;
公共列表getStringList(){
返回字符串列表;
}
公共无效设置字符串列表(最终列表字符串列表){
this.stringList=stringList;
}
setStringList(字符串列表)
getStringList().addAll(字符串列表)
如果列表已经包含条目,那么这些条目将被方法1覆盖,因为您设置了列表的一个全新实例
使用方法2,您只需将所有新条目添加到已存在的列表实例。如果列表已经包含条目,则这些条目将被方法1覆盖,因为您设置了列表的全新实例
使用方法2,您只需将所有新条目添加到已存在的列表实例中。在第一种方法中,整个
stringList
使用提供的列表进行初始化。
但在第二种方法中,新列表的所有元素都被添加到现有的
stringList
中。在第一种方法中,整个stringList
都用提供的列表初始化。
但是在第二种方法中,新列表的所有元素都被添加到现有的
stringList
是的,有很大的区别,第一种方法是正确的。原因如下:
- 这是一个setter方法,因此,它应该
设置列表,而不是添加元素。如果要
,可以公开另一种方法,如添加
addStrings()
- 第二种方法是继续将元素添加到同一个列表中,即,如果用10个元素的列表调用它10次,则结果列表将有100个元素,这是不可取的
- 如果列表为
,则第二种方法将抛出null
(如果对象是新创建的,并且NullPointerException
未分配任何值,则可能会抛出该异常)list
阅读更多关于
getters
和setters
是的,有很大的区别,第一种方法是正确的。原因如下:
- 这是一个setter方法,因此,它应该
设置列表,而不是添加元素。如果要
,可以公开另一种方法,如添加
addStrings()
- 第二种方法是继续将元素添加到同一个列表中,即,如果用10个元素的列表调用它10次,则结果列表将有100个元素,这是不可取的
- 如果列表为
,则第二种方法将抛出null
(如果对象是新创建的,并且NullPointerException
未分配任何值,则可能会抛出该异常)list
阅读有关
getters
和setters
的更多信息,如果列表stringList
尚未初始化,则NPE为2;如果列表stringList
尚未初始化,则NPE为2