我无法向列表中添加元素?不支持的操作异常

2022-09-02 02:53:30

这个列表对象正在咬我的屁股。

每当我尝试向它添加一个元素时,它都会产生这样的结果:

Caused by: java.lang.UnsupportedOperationException
        at java.util.AbstractList.add(AbstractList.java:148)
        at java.util.AbstractList.add(AbstractList.java:108)

产生错误的行是微不足道的,但无论如何,它在这里:

AdventureLobbies.players.add(args[0].toLowerCase());

我不应该静态访问它吗?

变量的实际声明:

AdventureLobbies.players = Arrays.asList(rs.getString("players").toLowerCase().split(","));

有什么想法吗?在谷歌上找不到任何有价值的东西。


答案 1

Arrays.asList() 会给你一个不可修改的列表,这就是你的添加失败的原因。尝试使用以下命令创建列表:

AdventureLobbies.players = new ArrayList(Arrays.asList(rs.getString("players").toLowerCase().split(",")));

答案 2

java文档说“返回由指定数组支持的固定大小的列表”asList@SafeVarargspublic static <T> List<T> asList(T... a)

您的列表是固定大小,这意味着它不能增长或收缩,因此当您调用add时,它会引发不受支持的操作异常