需要多个上限(扩展 AB)
你可以要求泛型类型来扩展多个上限。
示例:我们要对数字列表进行排序,但 Number
没有实现 Comparable
。
public <T extends Number & Comparable<T>> void sortNumbers( List<T> n ) {
Collections.sort( n );
}
在这个例子中,T
必须扩展 Number
并实现 Comparable<T>
,它应该适合所有普通内置数字实现,如 Integer
或 BigDecimal
,但不适合像 Striped64
这样更具异国情调的实现。
由于不允许多重继承,因此最多只能使用一个类作为绑定,并且必须首先列出。例如,不允许使用 <T extends Comparable<T> & Number>
,因为 Comparable 是一个接口,而不是一个类。