Я не могу добавить элемент в список? UnsupportedOperationException

Этот один объект списка кусает меня в прикладе.

Каждый раз, когда я пытаюсь добавить к нему элемент, он вызывает следующее:

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(","));

Любые идеи? Невозможно найти что-либо в Google, что стоит.

Ответы

Ответ 1

Arrays.asList() вернет вам немодифицируемый список, и поэтому ваш add не работает. Попробуйте создать список с помощью:

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

Ответ 2

В java-документах говорится   asList  @SafeVarargs  public static <T> List<T> asList(T... a) "Возвращает список фиксированного размера, поддерживаемый указанным массивом"

В вашем списке фиксированный размер, то есть он не может расти или сокращаться, поэтому, когда вы вызываете add, он генерирует исключение неподдерживаемой операции

Ответ 3

Это исключение очень хорошо знакомо с доступом к объектам, которые не разрешают доступ в соответствии с правилами языка java, такими как доступ к неизменяемым объектам, поэтому создайте его следующим образом:

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