2012-10-17 48 views
0

有沒有辦法限制一個方法只採取某些枚舉成員。假設你列舉了一些軍隊和士兵隊伍。如果我想要一個只能擔任軍官職位的職能部門,而另一個只能參加軍銜的職位,我認爲在Java中沒有辦法做到這一點,是嗎?我可以將方法參數限制爲僅限某些Enum成員嗎?

+2

你能發表一些你想要做的事嗎?失去了準備。抱歉。 – javarebel

+0

類似SecurityEnumSet = {A B C}和MonkeyEnumSet = {B D E}中的任何一個{A B C D E}的類型都是SpecialEnumType? – BRFennPocock

+0

是的,但它們不重疊。 – ggb667

回答

1

你唯一的選擇是使用不同的枚舉,因爲一個方法將枚舉作爲參數在編譯時取其任何值。

IDE幫助打字。

+0

我很害怕這個。 IDE沒有幫助。 Eclipse 3.6拒絕查找我想要使用的枚舉,即使它靜態地導入到我調用它的類中或包含relavent方法的類中。我希望是因爲它們包含在EnumSets中,我可以使用它,但我猜不是。 – ggb667

+0

我的確將各種枚舉放在一個接口中,他有一個內部類來存放枚舉數據。它們每個都有一個調用該類的構造函數和一個獲取它的getter方法,這是它們全部實現的接口的一部分。它是我能做的最好的,但它仍然是很多打字。對智者說的話,在枚舉中避免靜態的東西。 – ggb667

相關問題