标签: Effective Java
- 容器使用泛型可以在编译时防止你放错元素,放错元素编译不通过。
- 从容器中拿元素出来时不需要类型转换。
- 现在还支持原生态是因为要兼容旧代码,新代码坚决不要用。
- 可以使用Object作为类型参数,明确告知编译器可以放任意对象,例如List
- 如果要使用泛型,但确实不关心类型参数,则可以使用?通配符,例如Set<?>来代表任意类型参数。
- 通配类型是安全的,而原生态类型不安全。
- 有例外,类文字中应该使用原生类型,比如List.class而不是List
.class。 - 使用instanceof时也应该用原生类型而不是泛型,但过后必须使用Set<?>做转换。