Java 如何按名称字符串获取枚举值
我想按名称字符串获取枚举值 这是枚举代码: 包装实践Java 如何按名称字符串获取枚举值,java,enums,Java,Enums,我想按名称字符串获取枚举值 这是枚举代码: 包装实践 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");
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获得Samsung value 400?
非常感谢您可以使用以下内容:
final Mobile mobile = Mobile.valueOf("Samsung");
final int price = mobile.showPrice();
您必须将showPrice方法的范围更改为public。您可以使用以下方法:
final Mobile mobile = Mobile.valueOf("Samsung");
final int price = mobile.showPrice();
您必须将方法showPrice的作用域更改为public。您可能知道,每个枚举中都有一个valueOf方法,当字符串无效时,该方法仅通过解析名称read about exceptions返回常量 现在,由于您的枚举有另一个与常量关联的字段,您需要通过匹配这些字段来搜索其值 这是一个可能的解决方案,使用 爪哇8 因此,您可以通过搜索枚举的快捷方式来解析枚举 像
如您所知,每个枚举中都有一个valueOf方法,当字符串无效时,它仅通过解析nameread about exceptions返回常量 现在,由于您的枚举有另一个与常量关联的字段,您需要通过匹配这些字段来搜索其值 这是一个可能的解决方案,使用 爪哇8 因此,您可以通过搜索枚举的快捷方式来解析枚举 像
你是说像Enum.valueOfString?e、 g Mobile.valueOfNokiaUnrelated:标准命名约定是将该方法命名为getPrice,而不是showPrice,特别是因为该方法实际上不显示任何内容。@Edwin是的,Enum,valueOfenumClass,name,我们可以通过此类型方法获得名称对应的值400吗?您的意思是类似于Enum.valueOfString吗?e、 g Mobile.valueOfNokiaUnrelated:标准命名约定是将该方法命名为getPrice,而不是showPrice,特别是因为该方法实际上不显示任何内容。@Edwin yes,Enum,valueOfenumClass,name,我们可以通过此类型方法获得名称对应的值400吗?为什么是最终关键字?不是必需的,并且会向示例中添加零值。@Gabe使用变量enumClass怎么样?不是移动的。为什么最后的关键词?不是必需的,并且会向示例中添加零值。@Gabe使用变量enumClass怎么样?不是移动的。
System.out.println(ProgramOfStudy.getByShortCut("CS"));