Arrays.asList抛出异常
List<String> list = Arrays.asList("a", "b", "c");
list.add("d"); // 这会抛出 UnsupportedOperationException
java.lang.UnsupportedOperationException 是 Java 中的一个运行时异常,表示序列或集合不支持某个特定的操作。这个异常通常在你尝试调用一个方法时抛出,而该方法在当前的类实现中是不被支持的。
例如,Java 中的 Arrays.asList() 方法返回的列表是固定大小的,所以你不能在这个列表上调用 add() 或 remove() 或clear()方法,否则会抛出 UnsupportedOperationException。
asList 的返回对象是一个 Arrays 内部类,并没有实现集合的修改方法
为了避免这个异常,你可以使用其他类型的列表,如 ArrayList,它支持添加和删除元素:
List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
list.add("d"); // 这是允许的,不会抛出异常
当你遇到 UnsupportedOperationException 时,你应该检查你的代码,确保你没有在不支持该操作的对象上调用方法。如果你确实需要执行该操作,你可能需要更改对象的类型或使用其他方法来达到你的目的。
使用 Java 8 中的 Stream API,可以用一行代码实现数组到 List 的转换
String[] str = {"1", "2" };
List<String> list = Arrays.stream(str).collect(Collectors.toList());