Effective Java 2nd Edition说我们不应该在新代码中使用原始类型,并且我们还必须尝试消除所有未经检查的强制转换警告,并在我们选择禁止此类警告时证明并记录其安全性。
但是,我反复看到一种特殊的用法,它以类型安全的方式结合了原始类型和未经检查的强制转换。在其最典型的形式中,我们有:
static final
使用原始类型声明并引用不可变对象的字段static
使用未经检查的强制类型转换返回此字段的参数化版本的通用方法
这种“模式”最著名的例子见于java.util.Collections
:
List EMPTY_LIST
和<T> List<T> emptyList()
Set EMPTY_SET
和<T> Set<T> emptySet()
Map EMPTY_MAP
和<K,V> Map<K,V> emptyMap()
问题是:
- 这个成语叫什么?
- 以前在哪些权威资料中讨论过这个成语?
也可以看看
- 有效的 Java 第 2 版
- 第 23 条:不要在新代码中使用原始类型
- 第 24 条:消除未经检查的警告