2013-11-03 112 views
1

我正在學習Java課程,我的文檔將此方法標題作爲通用示例。不幸的是,這個描述是缺乏的。有人可以解釋這種打字方式是怎麼回事?需要關於此通用鍵入的簡要說明

public static <T extends Object & Comparable <? super T>> T max(T a, T b) { 
... 
... 
... 
} 

謝謝!

+0

我認爲泛型類型參數'T'應該擴展'Comparable'。 'a'和'b'屬於'T'類型。只有兩個參數可以相互比較才能達到最大值纔有意義。 – Vertex

回答

1

據我所知,

<T extends Object & Comparable <? super T>> 

是等效採用:

<T extends Comparable<? super T>> 

所以,這個說:

T,這應該是相當T或東西,比T缺少特徵。

此施工力量,你可以選擇一件T像MyClass,如果MyClass聲明如下其中之一:

MyClass implements Comparable<MyClass> 
MyClass implements Comparable<MySuperClass> 
MyClass implements Comparable<Object> 

但不允許:

MyClass implements Comparable<String> 
MyClass implements Comparable<MyChildClass> 

鑑於:MyChildClass extends MyClass extends MySuperClass extends Object