final static enum values()
时间: 2023-11-07 07:04:44 浏览: 49
`values()`是Java中的一个方法,用于返回一个枚举类型的所有枚举值。它返回一个包含枚举常量的数组,这些常量按照它们在枚举类型中定义的顺序排列。这个方法通常用于遍历枚举类型。在使用时,需要在枚举类型中定义一个静态的`values()`方法,这个方法会自动返回枚举类型的所有常量。例如:
```
public enum Color {
RED, GREEN, BLUE;
public static Color[] getAllColors() {
return values();
}
}
```
在这个例子中,`getAllColors()`方法返回`Color`枚举类型的所有常量。调用这个方法会返回一个包含`RED`、`GREEN`和`BLUE`的`Color`数组。
相关问题
java enum 通过key 获取值
可以通过以下方式获取 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"
```
优化@Getter @AllArgsConstructor public enum FormLogicExpressionEnum { ALL(1, "全部"), ANY(2, "任意"); @EnumValue @JsonValue private Integer value; private String desc; /** * 枚举入参注解 * * @param value * @return */ @JsonCreator public static FormLogicExpressionEnum getByValue(Integer value) { for (FormLogicExpressionEnum typeEnum : values()) { if (typeEnum.getValue().equals(value)) { return typeEnum; } } return null; } }
在这段代码中,可以使用枚举的静态代码块来替代 getByValue 方法,以提高代码的可读性和性能。修改后的代码如下:
```
@Getter
@AllArgsConstructor
public enum FormLogicExpressionEnum {
ALL(1, "全部"),
ANY(2, "任意");
@EnumValue
@JsonValue
private Integer value;
private String desc;
static {
for (FormLogicExpressionEnum typeEnum : values()) {
map.put(typeEnum.getValue(), typeEnum);
}
}
private static final Map<Integer, FormLogicExpressionEnum> map = new HashMap<>();
public static FormLogicExpressionEnum getByValue(Integer value) {
return map.get(value);
}
}
```
这里使用了一个静态代码块来初始化一个 Map,将枚举值的 value 作为 key,枚举对象本身作为 value,这样在 getByValue 方法中就可以直接通过 key 获取对应的枚举对象。这样修改后的代码不仅更加简洁,而且在获取枚举对象时也更加高效。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)