我想制作一个valueOf
在传入参数的任何Enum类上实现的方法(并且还包装一些专门的错误/缺失名称代码)。所以基本上,我有几个枚举,例如:
enum Enum1{ A, B, C }
enum Enum2{ D, E, F }
我想要一种可以环绕的方法valueOf
。我找不到一种可以直接在参数中传递Enum类的方法valueOf
。这是我想出的:
private static Enum getEnum(Class<Enum> E, String name){
for(Enum e: E.getEnumConstants())
if(e.name().equals(name)){
return e;
}
return null;
}
我想打电话给:getEnum(Enum1,"A")
。但它不喜欢它:
java: cannot find symbol
symbol: variable Enum1
location: class Main
当您可以为此使用Java自己的实现时,为什么要实现自己的呢?
YourEnum yourEnum = Enum.valueOf(YourEnum.class, value);
您的方法将变为:
private static <E extends Enum<E>> E getEnum(Class<E> enumClass, String name){
try {
return Enum.valueOf(enumClass, name);
} catch(IllegalArgumentException e) {
return null;
}
}
您可以通过以下方式调用它:
getEnum(Enum1.class, "A")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句