我知道我可以使用下面的僞代碼(我知道Enum
沒有contains
方法,這僅僅適用於我的示例)檢查特定枚舉中是否包含字符串。 :在Java中傳遞枚舉類型值作爲參數
Enum Animal {
Dog,
Cat,
Human
}
public boolean CheckAnimalValid(String name){
return Animal.contains(name)? true : false;
}
但在以前的方式,我需要實現的CheckValid方法每個枚舉類,因爲我需要知道WHICH Enum類,我應該去檢查。
我想知道有沒有什麼方法傳遞枚舉類型作爲參數傳遞給函數,這樣我可以這樣做:
Enum Animal {
Dog,
Cat,
Person
}
Enum Plant {
Grass,
Flower,
Tree
}
public boolean CheckEnumValid(String name, what_should_I_do? enum){
return enum.contains(name)? true : false;
}
我想知道哪種類型(或關鍵字)我應該使用what_should_I_do?在前面的代碼中。我知道我應該使用泛型,但我不知道該怎麼做。謝謝!
我根本不寫。我會直接使用'Enum.valueOf(類 enumType,String name)'。 NB在Enum中沒有'contains()'方法,除非你自己把它放在那裏。 –
EJP
@EJP感謝您的建議。你是對的,'valueOf()'可以實現我所需要的幾乎;但我仍然想知道如何實現使用泛型。我試過'公開>',它可以被編譯,但是我不知道如何調用這個函數。我不能使用'CheckValid(「test」,Plant);''或者'CheckValid(「test」,Plant.class);'。 –
Alanight
'Enum.valueOf(類枚舉類型,字符串名稱)'*已經*用泛型實現它。你不需要別的東西。 –
EJP