如何通过名称字符串获取枚举值

dan*_*nny 1 java enums

我想通过名称字符串获取枚举值,

这个枚举代码:包实践;

enum Mobile {
  Samsung(400),
  Nokia(250),
  Motorola(325);

  int price;
  Mobile(int p) {
    price = p;
  }
  int showPrice() {
    return price;
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以获取类名和名称字符串

Class enumClass = Class.forName("practice.Mobile");
String name = "Samsung";
Run Code Online (Sandbox Code Playgroud)

如何才能获得三星值400仅使用enumClass和名称?非常感谢

小智 5

您可以使用以下内容:

final Mobile mobile = Mobile.valueOf("Samsung");
final int price = mobile.showPrice();
Run Code Online (Sandbox Code Playgroud)

(您必须将方法的范围更改showPrice()public).