我知道我可以使用下面的伪代码(我知道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