15.1 与 C++ 的比较

15.2 简单泛型

持有单个具体类:

image.png

利用 Object 持有不同类型的类:

image.png

使用类型参数, 由编译器确保类型正确:

image.png

15.2.1 一个元组类库

tuple: 存储多个对象的单一对象

  • 不允许存放新元素

存储两个不同类的 tuple:

image.png
image.png

利用继承实现存储不同个数的不同类:

image.png

使用元组实现 return 多个返回值:

image.png

15.2.2 一个堆栈类

image.png

15.2.3 RandomList

image.png
image.png

15.3 泛型接口

image.png

image.png

基础类型无法作为类型参数:

image.png

15.4 泛型方法

static 方法无法访问泛型类的类型参数, 需要使其成为泛型方法.

定义泛型方法:

  • 在调用泛型方法时, 编译器根据参数就能知道具体类型, 所以不用在调用泛型方法前传递类型参数

image.png

15.4.1 杠杆利用类型参数推断

显示的类型说明:

image.png

考虑编译器何时可以使用类型推断.

15.4.2 可变参数与泛型方法

image.png
image.png

15.4.3 用于 Generator 的泛型方法

15.4.4 一个通用的 Generator

15.4.5 简化元组的使用

15.4.6 一个 Set 实用工具

15.5 匿名内部类

泛型可以应用于内部类以及匿名内部类