需要多个上限(扩展 AB)

你可以要求泛型类型来扩展多个上限。

示例:我们要对数字列表进行排序,但 Number 没有实现 Comparable

public <T extends Number & Comparable<T>> void sortNumbers( List<T> n ) {
  Collections.sort( n );
}

在这个例子中,T 必须扩展 Number 实现 Comparable<T>,它应该适合所有普通内置数字实现,如 IntegerBigDecimal,但不适合像 Striped64 这样更具异国情调的实现。

由于不允许多重继承,因此最多只能使用一个类作为绑定,并且必须首先列出。例如,不允许使用 <T extends Comparable<T> & Number>,因为 Comparable 是一个接口,而不是一个类。