gpt4 book ai didi

java - 为什么我无法使用方法返回的列表引用添加元素

转载 作者:行者123 更新时间:2023-11-29 07:28:01 25 4
gpt4 key购买 nike

当我使用方法返回的列表引用添加元素时出现错误。

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> getNames() {
return this.names;
}

}

主要

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);

}

}

错误

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)

我知道我可以通过添加来消除此错误

new ArrayList(obj.getNames())

我的问题是为什么我不能将该引用用作原始引用?

最佳答案

Arrays.asList("foo1", "foo2", "foo3", "foo4", "foo5") 创建一个固定大小的列表,因此您无法添加/删除元素它(仅修改现有元素或替换现有索引中的元素)。

您可以使用:

new ArrayList<>(Arrays.asList("foo1", "foo2", "foo3", "foo4", "foo5"))

支持添加新元素。

关于java - 为什么我无法使用方法返回的列表引用添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47494589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com