(1)泛型:
尽量使用泛型方法(2)泛型擦除
泛型类型在运行的时候会被擦除,即转换为Object类型典型事例:
1. instanceof 不能跟泛型类型参数
2. class实例类型一致(getClass)
(3)不要在新代码中使用原生态类型
1.由于兼容性的需要,原生态类型一直存在着,如List,但是为了安全性需要,不要使用原生态类型2.List<String>对象是可以赋值给List的,但是不能赋值给List<Object>,前者是为了逃避泛型检查,但是会丢失安全性。
3.JAVA提供了无限制通配符类型,用来在不确定集合元素类型的集合使用:
Set<?> s
4.两个例外:(由于泛型擦除)
(1)instanceof()不能跟泛型参数
s1 instanceof(Set) //正确
s1 instanceof(Set<?>) //错误
(2)
List.class String[].class //正确
List<String>.class //错误
List<?>.class //错误