我有一個方法,我需要傳遞一個枚舉作爲參數。如何聲明一個方法參數爲任何枚舉
public <T> T doSomething(SomeEnum operation, Class<T> something);
我有幾個枚舉和的方法是很常見的,應與任何枚舉工作。寫這個方法簽名以接受任何泛型枚舉類型的正確方法是什麼?我知道我可以使用標記接口來達到這個目的,但我想用泛型枚舉簽名來寫它。請告訴我這個。
下面這個壞主意是什麼:(它可以工作,但我從IDE獲得的警告稱它是原始類型,我不清楚原因)。
public void doSomething(Enum operation);
這就是要走的路。另請參閱EnumSet中有關此操作的示例:http://docs.oracle.com/javase/1.5.0/docs/api/java/util/EnumSet.html – Zarkonnen 2012-07-11 14:39:29
嗨,感謝您的回覆,但我無法'不要再添加這部分,因爲它再次抱怨簽名問題。對不起,我應該發佈我正在尋找的確切簽名。請參閱我的編輯現有的方法簽名,我需要添加您提到的內容。在這種情況下,方法簽名將如何顯示? – popcoder 2012-07-12 02:28:35
這是你在找什麼?或T和枚舉應該是不同的類型? – 2012-07-12 06:00:31