java enum 通过key 获取值
时间: 2023-10-08 22:14:27 浏览: 190
可以通过以下方式获取 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
可以通过遍历枚举来实现根据value值获取对应的key。
示例代码:
```java
public enum Color {
RED(1), GREEN(2), BLUE(3);
private int value;
private Color(int value) {
this.value = value;
}
public int getValue() {
return value;
}
// 根据value值获取对应的key
public static Color getKey(int value) {
for (Color color : Color.values()) {
if (color.getValue() == value) {
return color;
}
}
return null;
}
}
// 测试
Color color = Color.getKey(2);
System.out.println(color); // 输出 GREEN
```
在上面的示例中,定义了一个Color枚举,其中包含三种颜色,每种颜色都有一个对应的value值。通过在枚举中添加一个静态的getKey方法,可以根据传入的value值获取对应的key。在方法中遍历枚举中的所有元素,如果找到了value值相等的元素,则返回该元素,否则返回null。
阅读全文
相关推荐
















