个人读书笔记,部分没读懂的知识点可能会简单概括或缺失,以后反复阅读后再完善。
第5章 泛型
第23条: 请不要在新代码中使用原生态类型
声明中具有一个或多个类型参数的类或接口,就是泛型。
使用原生态类型会在运行时导致异常。
Set<Object>是个参数化类型,表示可以包含任何对象类型的一个集合;
Set<?>则是一个通配符类型,表示只能包含某种未知对象类型的一个集合。
Set则是个原生态类型。
第24条: 清除非受检警告
@SuppressWarnings("unchecked")
可以掩盖警告。但使用时要加注释,说明为什么这么做是安全的。
第25条:列表优于数组
列表:List<Object>。 数组:Object[]。
利用数组,可以在运行时发现错误,但利用列表,在编译时已经发现错误了。
第26条:优先考虑泛型
使用泛型比使用需要转换类型的代码更加安全,也更加容易。
第27条: 优先考虑泛型方法
第28条: 利用有限制通配符来提升API的灵活性
有限制的通配符类型:Iterable<? Extends E>