Автор оригинала: 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 Listlist = 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) { Listlist = 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/”