枚举类 传code获取value的方法
时间: 2023-08-03 07:04:35 浏览: 61
在枚举类中,可以通过调用枚举常量的name()方法获取枚举常量的名称,通过调用枚举常量的valueOf()方法获取枚举常量的实例。但是,如果需要通过枚举常量的代码获取枚举常量的值,可以通过编写一个静态方法来实现。
例如,假设有一个枚举类Color,定义了三种颜色:RED、GREEN、BLUE,并且每种颜色都有一个对应的代码,可以通过以下方式实现根据代码获取颜色的方法:
```
public enum Color {
RED("R"),
GREEN("G"),
BLUE("B");
private String code;
Color(String code) {
this.code = code;
}
public String getCode() {
return code;
}
public static Color fromCode(String code) {
for (Color color : Color.values()) {
if (color.getCode().equals(code)) {
return color;
}
}
throw new IllegalArgumentException("No such color with code " + code);
}
}
```
在上面的代码中,Color枚举类中定义了一个私有的code属性,并且通过构造方法来初始化该属性。同时,编写了一个静态方法fromCode(String code),该方法接受一个代码参数,遍历所有枚举常量,如果找到对应的代码,则返回该枚举常量。如果没有找到对应的代码,则抛出IllegalArgumentException异常。可以通过调用Color.fromCode("R")来获取RED颜色的枚举常量。