java为验证创建通用枚举包装器
免责声明:泛型不是很强
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);
行对我的函数不满意
任何指点都很感激!短暂性脑缺血发作
# 1 楼答案
您需要迭代枚举值,并检查是否与传递的值匹配:
使用Java 8和更新版本:
对于较旧的Java版本:
# 2 楼答案
您可以将其改写为:
及
# 3 楼答案
这有一个库,如果您不想实现它,也可以使用它
{}中的{a1}