Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用getter和setter方法将列表添加到bean属性之间的区别?_Java_Collections_Javabeans - Fatal编程技术网

Java 使用getter和setter方法将列表添加到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

这两种向bean属性添加列表的方法有什么区别吗

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