Ответ 1
Arrays.asList() вернет вам немодифицируемый список, и поэтому ваш add не работает. Попробуйте создать список с помощью:
AdventureLobbies.players = new ArrayList(Arrays.asList(rs.getString("players").toLowerCase().split(",")));
Этот один объект списка кусает меня в прикладе.
Каждый раз, когда я пытаюсь добавить к нему элемент, он вызывает следующее:
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, что стоит.
Arrays.asList() вернет вам немодифицируемый список, и поэтому ваш add не работает. Попробуйте создать список с помощью:
AdventureLobbies.players = new ArrayList(Arrays.asList(rs.getString("players").toLowerCase().split(",")));
В java-документах говорится asList
@SafeVarargs
public static <T> List<T> asList(T... a)
"Возвращает список фиксированного размера, поддерживаемый указанным массивом"
В вашем списке фиксированный размер, то есть он не может расти или сокращаться, поэтому, когда вы вызываете add, он генерирует исключение неподдерживаемой операции
Это исключение очень хорошо знакомо с доступом к объектам, которые не разрешают доступ в соответствии с правилами языка java, такими как доступ к неизменяемым объектам, поэтому создайте его следующим образом:
AdventureLobbies.players = new ArrayList(Arrays.
asList(rs.getString("players").toLowerCase().split(","))); // Perfectly done