优化@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; } }
时间: 2024-02-14 22:03:29 浏览: 146
同样地,这段代码已经很简洁了。如果要进一步优化,可以考虑使用 Java 8 的 Stream API 来简化 getByValue 方法的实现。使用 Stream API 可以将枚举值转换为一个流,然后使用 filter 方法过滤出 value 属性等于传入值的枚举值,最后使用 findFirst 方法获取第一个匹配的枚举值。优化后的代码如下:
```
@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) {
return Arrays.stream(FormLogicExpressionEnum.values())
.filter(typeEnum -> typeEnum.getValue().equals(value))
.findFirst()
.orElse(null);
}
}
```
这样,getByValue 方法就变得更加简洁了,而且代码逻辑也更加清晰易懂。
阅读全文