当我使用方法返回的列表引用添加元素时出现错误。
假人.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> getNames() {
return this.names;
}
}
main
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class count {
public static void main(String[] args) {
Dummy obj = new Dummy(Arrays.asList("foo1", "foo2", "foo3", "foo4", "foo5"));
List<String> name = obj.getNames();
name.add("foo6");
System.out.println(name);
}
}
Error
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)
at java.util.AbstractList.add(AbstractList.java:108)
at firstPro.count.main(count.java:13)
我知道我可以通过添加来摆脱这个错误
新的ArrayList(obj.getNames())
我的问题是为什么我不能将该引用用作原始引用?
Arrays.asList("foo1", "foo2", "foo3", "foo4", "foo5")
创建一个固定大小的列表,因此您无法向其中添加/删除元素(只能修改现有元素或替换现有索引中的元素)。
您可以使用:
new ArrayList<>(Arrays.asList("foo1", "foo2", "foo3", "foo4", "foo5"))
支持添加新元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)