第二十三条:请不要在新代码中使用原生态类型
List 原生态类型就是List
- 如果使用原生态类型,就失掉了泛型在安全性和表达性方面的所有优势;List是原生类型,List < T > 为泛型。
第二十四条:消除非受检警告
- 应该始终在尽可能小的范围中使用SuppressWarnings注解。
第二十五条:列表优先于数组
第二十六条:优先考虑泛型
第二十七条:优先考虑泛型方法
第二十八条:利用有限制的通配符来提升API的灵活性
可以参考Collections里面的方法。
- 如果类型参数只在方法中出现一次,就可以用通配符取代它。
第二十九条:优先考虑类型安全的异构容器
使用Class对象作为键值,然后调用Class的cast方法去转换,这样就不会发生 class Cannot cast的异常
下面的例子中:map就是异构容器
Map<Class<?>,Object> map=new HashMap<Class<?>,Object>();
public <T> void put(Class<T> type,T val){
map.put(type,vla);
}
public <T> void get(Class<T> type){
return type.cast(map.get(type));
}