Java 为什么我能';t使用方法返回的列表引用添加元素
使用方法返回的列表引用添加元素时出错 Dummy.javaJava 为什么我能';t使用方法返回的列表引用添加元素,java,arraylist,collections,Java,Arraylist,Collections,使用方法返回的列表引用添加元素时出错 Dummy.java package firstPro; import java.util.List; public class Dummy { private List<String> names; public Dummy(List<String> names) { this.names = names; } public List<String> getNam
package firstPro;
import java.util.List;
public class Dummy {
private List<String> names;
public Dummy(List<String> names) {
this.names = names;
}
public List<String> getNames() {
return this.names;
}
}
我知道我可以通过添加
新建ArrayList(obj.getNames())
我的问题是,为什么我不能将该引用作为原始引用?来自我的JavaDoc,强调:
返回指定数组支持的固定大小的列表
您可以使Dummy
处理修改,方法是将接收列表中的值复制到新的ArrayList
实例中,
通过更改其构造函数:
public Dummy(List<String> names) {
this.names = new ArrayList<>(names);
}
公共虚拟(列表名称){
this.names=新的ArrayList(名称);
}
来自我的JavaDoc,强调:
返回指定数组支持的固定大小的列表
您可以使Dummy
处理修改,方法是将接收列表中的值复制到新的ArrayList
实例中,
通过更改其构造函数:
public Dummy(List<String> names) {
this.names = new ArrayList<>(names);
}
公共虚拟(列表名称){
this.names=新的ArrayList(名称);
}
数组。asList(“foo1”、“foo2”、“foo3”、“foo4”、“foo5”)
创建一个固定大小的列表,因此您无法向其中添加/删除元素(仅修改现有元素或替换现有索引中的元素)
您可以使用:
new ArrayList<>(Arrays.asList("foo1", "foo2", "foo3", "foo4", "foo5"))
newarraylist(Arrays.asList(“foo1”、“foo2”、“foo3”、“foo4”、“foo5”))
支持添加新元素。数组。asList(“foo1”、“foo2”、“foo3”、“foo4”、“foo5”)
创建一个固定大小的列表,因此不能向其中添加/删除元素(只能修改现有元素或替换现有索引中的元素)
您可以使用:
new ArrayList<>(Arrays.asList("foo1", "foo2", "foo3", "foo4", "foo5"))
newarraylist(Arrays.asList(“foo1”、“foo2”、“foo3”、“foo4”、“foo5”))
支持添加新元素。到quote的文档:
返回指定数组支持的固定大小的列表
由于返回的列表
具有固定的大小,因此它不支持添加
操作,调用它将抛出一个不支持操作异常
。引用的文档:
返回指定数组支持的固定大小的列表
由于返回的
列表
具有固定的大小,因此它不支持添加
操作,调用它将抛出一个不支持操作异常
。注意,允许类的用户直接访问内部状态通常是不可取的。返回Collections.unmodifiableList(names)
允许您控制该列表的内容(尽管如果您试图添加到该列表中,也会导致引发异常)。最好在你的class.tnx上提供一个加法器方法,先生,我会记住的。注意,允许你的类的用户直接访问内部状态通常是不可取的。返回Collections.unmodifiableList(names)
允许您控制该列表的内容(尽管如果您试图添加到该列表中,也会导致引发异常)。最好在你的class.tnx上提供一个加法器方法,先生,我会记住的