Автор оригинала: mkyong.
Как правило, мы используем Массивы.asList или новая Java 9 Список.из для создания списка . Однако оба метода возвращают фиксированный размер или неизменяемый Список , это означает, что мы не можем его изменить, иначе он выбрасывает Исключение UnsupportedOperationException .
package com.mkyong;
import java.util.Arrays;
import java.util.List;
public class JavaListExample {
public static void main(String[] args) {
// immutable list, cant modify, java.util.Arrays$ArrayList
List list = Arrays.asList(1, 2, 3, 4, 5);
// immutable list, cant modify , java 9
List list2 = List.of(1, 2, 3, 4, 5);
//list.add(6); // UnsupportedOperationException
list.add(6); // UnsupportedOperationException
}
}
Выход
Exception in thread "main" java.lang.UnsupportedOperationException at java.base/java.util.AbstractList.add(AbstractList.java:153) at java.base/java.util.AbstractList.add(AbstractList.java:111)
Решение
Если мы хотим создать изменяемый список, который позволяет нам изменять его, создайте ArrayList .
package com.mkyong;
import java.util.ArrayList;
import java.util.List;
public class JavaListExample {
public static void main(String[] args) {
List list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6); // modify the list
list.forEach(System.out::println);
}
}
Выход
1 2 3 4 5 6
Рекомендации
- Что такое java.util. Массивы$Список массивов?
- Массивы.как список JavaDoc
- МассиВный JavaDoc
Оригинал: “https://mkyong.com/java/java-list-throws-unsupportedoperationexception/”