Collections.checkedList 返回一个类型安全的列表视图,确保添加元素时立即进行类型检查。1. 指定类型后,任何不匹配类型的添加操作会立刻抛出 ClassCastException;2. 适用于防止因类型擦除导致的运行时错误;3. 返回的是原始列表的包装视图,所有修改仍作用于原列表;4. 必须通过该视图进行所有写入操作才能保证类型安全;5. 示例中向 List 添加 Integer 会在 add 时即报错,而非后续读取时才发现问题。

Java 中 Collections.checkedList 方法的作用是返回一个“类型安全”的列表视图,确保插入到列表中的元素都符合指定的类型。如果尝试添加不匹配类型的元素,会立即抛出 ClassCastException,而不是等到从列表中读取时才发现问题。
防止运行时类型错误
在使用泛型时,有时由于类型擦除或不正确的强制转换,可能会将错误类型的对象加入集合中。checkedList 可以在添加元素的那一刻就进行类型检查,避免后续操作中出现难以排查的问题。
例如:- 你声明了一个 List
,但通过某些方式误加入了 Integer 类型的对象 - 如果没有 checkedList,这个错误可能在遍历或获取元素时才暴露
- 使用 checkedList 后,add 操作就会立刻失败并报错,便于定位问题
用法示例
以下代码展示如何使用 Collections.checkedList:
ListrawList = new ArrayList<>(); List checkedList = Collections.checkedList(rawList, String.class); checkedList.add("hello"); // 正常 checkedList.add(123); // 立即抛出 ClassCastException
注意事项
该方法返回的是原列表的包装视图,所有对该视图的操作都会作用于原始列表。它只对通过该视图执行的修改操作进行类型检查,因此要保证所有写入都经过这个检查视图才能发挥最大作用。
立即学习“Java免费学习笔记(深入)”;
基本上就这些,它是一个轻量级的运行时类型保护工具,适合在需要额外类型安全的场景下使用。










