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