2009-11-20 32 views
1

我需要定義一個泛型類,並且類型參數必須是枚舉。我認爲它應該看起來像Java有界wilcard類型

public class <T> MyClass<T extends Enum<T>> { 

} 

但我似乎無法弄清楚確切的語法。我應該提到,我需要一種方式來引用它實例化的類型(在MyClass中)。

謝謝!

回答

3
public class MyClass<T extends Enum<T>> { } 
0

雖然已批准的答案在語法上看起來正確,但是對於這樣的聲明,情況如何?你是否試圖編寫一些可以在任何enum -defined類型上運行的類,如java.util.EnumSetjava.util.EnumMap?這是一種不尋常的安排,所以確保你真的需要它來滿足你的要求。

+0

這實際上是您經常使用的用例。例如,你也可以創建一個類型爲>的TreeSet,這意味着你可以相互比較的一組東西。 – Jorn 2009-11-20 23:27:44

+0

是的,這幾乎是奇怪的循環模板模式,沒有派生。我在這裏具體詢問Enum的用法。我把這個問題集中在Enum上,而不是寫出這樣一個通用聲明的普遍問題。 – seh 2009-11-20 23:46:11