需要多個上限(擴充套件 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 是一個介面,而不是一個類。