只有知道了某个技术不能做到什么,才能更好地做到所能做的。理解了边界所在,你才能成为程序高手。 ——P535

WWH:是什么?为什n么?怎么做?

泛型是什么

为什么要用泛型

泛型解决了什么问题?

为什么要有泛型?

泛型的核心概念?
告诉编译器你想使用什么类型,然后编译器帮你处理一切细节。

泛型的使用和 Object 有什么不同?
泛型主要的目的之一就是用来指定容器要持有什么类型,而类型的检查由解释器来保证。
于Object来说,只能保证持有不同的类型,缺少了类型检查。

泛型的局限性

基本类型无法作为类型参数。不过,java SE5 具备自动打包和拆包功能,可以实现基本类型和对应包装器类型之间的转换,这个问题也就不再是问题了。

泛型的实现

泛型类

泛型接口

泛型方法

实现方式:将泛型参数列表置于方法返回值类型之前。

基本指导原则:尽量使用泛型方法。也就是说,如果用泛型方法可以取代讲整个类泛型化,那么就应该使用泛型方法。因为他可以让事情说的更明白。

特殊情况:static方法如果要泛化,必须也只能使用泛型方法的实现方式。因为 static 方法无法方位泛型类的类型参数。这个和 static 的原理有关。