代码对比
✕ Java 8
List<String> list =
Collections.unmodifiableList(
new ArrayList<>(
Arrays.asList("a", "b", "c")
)
);
✓ Java 9+
List<String> list =
List.of("a", "b", "c");
发现此代码有问题? 告诉我们。
为什么现代方式更好
一次调用
用单个工厂方法替代三层嵌套调用。
真正不可变
不只是包装器——列表本身是不可变的。
null 安全
在创建时拒绝 null 元素,快速失败。
旧方式
冗长的包装方式
现代方式
List.of()
自 JDK
9
难度
入门
JDK 支持
创建不可变列表
可用
自 JDK 9 起广泛可用(2017 年 9 月)
工作原理
List.of() 创建真正不可变的列表——无需包装,无需防御性复制。它拒绝 null 元素,在结构上不可变。旧方式需要三层嵌套调用。
相关文档