java enum 通过key 获取值
时间: 2023-10-08 18:14:27 浏览: 189
可以通过以下方式获取 Java 的枚举类型中指定 key 对应的值:
```java
public enum ExampleEnum {
KEY1("value1"),
KEY2("value2"),
KEY3("value3");
private final String value;
ExampleEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
public static ExampleEnum getByKey(String key) {
for (ExampleEnum e : ExampleEnum.values()) {
if (e.name().equals(key)) {
return e;
}
}
return null;
}
}
```
其中,`getByKey` 方法可以通过传入 key 值返回对应的枚举类型实例。例如:
```java
ExampleEnum exampleEnum = ExampleEnum.getByKey("KEY1");
System.out.println(exampleEnum.getValue()); // 输出 "value1"
```
相关问题
java Enum根据key值获取对应的value
在Java中,可以通过以下方式获取Enum类型的值:
1. 使用Enum的valueOf()方法,该方法根据传入的字符串参数返回对应的枚举常量,如果该字符串不是有效的枚举常量名称,则会抛出IllegalArgumentException异常。
例如:
```
public enum Color {
RED("红色"), GREEN("绿色"), BLUE("蓝色");
private String name;
Color(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Color color = Color.valueOf("RED");
System.out.println(color.getName()); // 输出:红色
```
2. 定义一个静态的Map对象,将枚举常量的key和value都存储在Map中,然后根据key值获取对应的value。
例如:
```
public enum Color {
RED("红色"), GREEN("绿色"), BLUE("蓝色");
private String name;
Color(String name) {
this.name = name;
}
public String getName() {
return name;
}
private static final Map<String, Color> map = new HashMap<>();
static {
for (Color color : Color.values()) {
map.put(color.name(), color);
}
}
public static Color valueOfName(String name) {
return map.get(name);
}
}
Color color = Color.valueOfName("RED");
System.out.println(color.getName()); // 输出:红色
```
java Enum根据value值获取对应的key
可以通过循环枚举来获取对应的key。
示例代码:
```java
public enum MyEnum {
KEY1("value1"), KEY2("value2"), KEY3("value3");
private String value;
MyEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
public static String getKeyByValue(String value) {
for (MyEnum myEnum : MyEnum.values()) {
if (myEnum.getValue().equals(value)) {
return myEnum.name();
}
}
return null;
}
}
```
使用示例:
```java
String key = MyEnum.getKeyByValue("value1");
System.out.println(key); // 输出 KEY1
```
阅读全文
相关推荐















