MengBridgeCourse 中文版

第 10 章 队列与泛型

| 关于   英文版   «  9.3. 单元 9 编程 1 占位符   ::   目录   ::   10.2. 队列  »

10.1. 泛型的更多知识

10.1.1. 目标

完成本模块后,学生将能够:

  • 确定何时需要为泛型设置界限

  • 编写并使用使用界限泛型参数的方法和类

  • 编写并使用界限泛型方法

  • 熟悉通配符的语法

10.1.1.1. 建议阅读:

Java 插曲 8 泛型再探 摘自 Data Structures and Abstractions with Java, 4th edition by Frank M. Carrano and Timothy Henry

10.1.2. 交互式:泛型更多内容 [10:53]

Follow Along, Practice and Explore

在 Eclipse 中,使用 Project > Download Assignment... 菜单命令下载名为"ex10.01-Generics"的练习项目。使用此示例跟随下面的视频。请随意进行实验。

若需要回顾下载 Eclipse 项目的说明,请参阅 01.02: Lab: LightBot for Beginners。

Video Slides 10.1.2.1-MoreOnGenerics.pdf

10.1.3. 反思泛型 [17:26]

10.1.3.1. 相关资源

10.1.4. 泛型方法的示例声明解析

声明泛型方法的格式如下:

methodModifiers <genericParameters> returnType methodName(methodParameters)

注意放在尖括号内的泛型参数。

示例 1

以下是您声明泛型方法的一个示例。

public static <T> void sort(T[] items, Comparator<? super T> comp)

静态关键字之后的、位于尖括号内的 T 代表排序方法的泛型参数。T 也应当出现在方法参数列表中。

第二个方法参数 Comparator<? super T> comp 是我们指定 comp 必须是实现 Comparator 接口的对象(用于类型 T 或类型 T 的父类)的方式。

我们采用这种方法来指定限制条件,例如,您可以定义一个实现了 Comparator<Number> 的类,并用于对 Integer 对象数组或 Double 对象数组进行排序。

示例 2

下面又是另一个泛型方法声明的示例。

public static <T extends Comparable<T>> void sort(List<T> list)

使用 <T extends Comparable<T>> 指定泛型参数 T 必须实现接口 Comparable<T> 。方法参数列表(被排序的对象)类型为 List<T> 。

10.1.5. 检查点 1

10.1.6. 交互式:有界通配符示例

Follow Along, Practice and Explore

在 Eclipse 中,使用 项目 > 下载作业... 菜单命令下载名为"ex10.01-Generics"的作业项目。使用此示例跟随以下视频。可以随意尝试。

如需要回顾下载 Eclipse 项目的说明,请参阅 01.02: Lab: LightBot for Beginners。

10.1.6.1. 相关资源

10.1.7. 编程练习:泛型 1

   «  9.3. 单元 9 编程 1 占位符   ::   目录   ::   10.2. 队列  »

关闭窗口