I am unable to add an element to a list? Unsupport

2019-01-25 05:00发布

This one list object is biting me in the butt..

Any time I try to add an element to it, it produces this:

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

The line producing the error is insignificant, but here it is anyways:

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

Should I not be accessing it statically?

Actual declaration of variable:

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

Any ideas? Can't find anything on Google that's worthwhile.

3条回答
贪生不怕死
2楼-- · 2019-01-25 05:41

This exception is very familiar with accessing objects that will not permit the access according to java language rules like accessing immutable objects, for that reason instantiate it in the following way instead:

AdventureLobbies.players = new ArrayList(Arrays.
asList(rs.getString("players").toLowerCase().split(","))); // Perfectly done
查看更多
一纸荒年 Trace。
3楼-- · 2019-01-25 05:45

Arrays.asList() will give you back an unmodifiable list, and that is why your add is failing. Try creating the list with:

AdventureLobbies.players = new ArrayList(Arrays.asList(rs.getString("players").toLowerCase().split(",")));
查看更多
Evening l夕情丶
4楼-- · 2019-01-25 06:06

The java docs say asList @SafeVarargs public static <T> List<T> asList(T... a) "Returns a fixed-size list backed by the specified array"

Your list is fixed size, meaning it cannot grow or shrink and so when you call add, it throws an unsupported operation exception

查看更多
登录 后发表回答