java如何通过名称字符串获取枚举值
我想按名称字符串获取枚举值
这是枚举代码: 包装实践
enum Mobile {
Samsung(400),
Nokia(250),
Motorola(325);
int price;
Mobile(int p) {
price = p;
}
int showPrice() {
return price;
}
}
我可以得到类名和名称字符串
Class enumClass = Class.forName("practice.Mobile");
String name = "Samsung";
如何仅使用enumClass和name获得三星value 400? 非常感谢
# 1 楼答案
您可以使用以下内容:
(您必须将方法
showPrice()
的范围更改为public
)# 2 楼答案
您可能知道,每个枚举中都有一个valueOf方法,它只需解析名称即可返回常量(请阅读有关字符串无效时的异常的信息)
现在,由于您的枚举有另一个与常量关联的字段,您需要通过匹配这些字段来搜索其值
这是一个可能的解决方案,使用
爪哇8
因此,您可以通过搜索枚举的“快捷方式”来“解析”枚举
就像