Collections.checkedList用于创建指定类型的列表视图,运行时检查元素类型,防止非法添加;例如Collections.checkedList(list, String.class)确保仅能添加String类型,否则抛ClassCastException;适用于混合泛型与原始类型的场景,增强运行时安全。
Java 中的 Collections.checkedList 方法用于创建一个“类型安全”的列表视图,确保向列表中添加的元素必须是指定类型,否则会在运行时抛出 ClassCastException。它主要用于在运行时捕获类型错误,尤其是在使用泛型与原始类型混合的场景中。
Collections 工具类,定义如下:
public static
下面是一个使用 checkedList 的简单示例:
List虽然编译通过(因为类型在运行时检查),但尝试添加非字符串类型会导致异常。rawList = new ArrayList<>(); List checkedList = Collections.checkedList(rawList, String.class); checkedList.add("Hello"); // 成功 checkedList.add("World"); // 成功 // checkedList.add(123); // 运行时抛出 ClassCastException
Class 对象(如 String.class)
基本上就这些。使用 Collections.checkedList 是一种轻量级方式,在关键集合上增加运行时类型防护,尤其适合在混合新旧代码的项目中使用。虽然现代 Java 开发中更推荐全程使用泛型,但在某些边界场景下,checkedList 仍是一个有用的工具。