Java需要多个上限(“扩展A和B”)

示例

您可以要求通用类型来扩展多个上限。

示例:我们要对数字列表进行排序,但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是接口而不是类。