免责声明:泛型不是很强。
enum WeekDays {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
}
enum Months {
JANUARY, FEBRAURY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER;
}
enum Directions {
East, West, North, South, Up, Down
}
假设我有上面的枚举,并且有一个服务向我发送随机字符串。
我需要验证目标字符串响应是否是有效的枚举值。
我正在考虑编写如下代码:
static <T> boolean isValidEnum(String value, T enumClass ){
try {
enumClass.valueOf(value);
return true;
} catch (Exception e) {
}
return false;
}
调用如下:
isValidEnum("TUESDAY", WeekDays)
但是 enumClass.valueOf(value);
行对我的函数不满意。
感谢任何指点! TIA
最佳答案
您可以将其重写为:
static <T extends Enum<T>> boolean isValidEnum(String value, Class<T> enumClass ){
try {
Enum.valueOf(enumClass, value);
return true;
} catch (Exception e) {
}
return false;
}
和
isValidEnum("TUESDAY", WeekDays.class)
关于java - 创建用于验证的通用枚举包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61748740/