优化@AllArgsConstructor @Getter @NoArgsConstructor public enum FormStatusEnum { CREATE(1, "未发布"), RELEASE(2, "收集中"), STOP(3, "停止发布"); @EnumValue @JsonValue private int value; private String desc; /** * 枚举入参注解 * * @param value * @return */ @JsonCreator public static FormStatusEnum getByValue(int value) { for (FormStatusEnum statusEnum : values()) { if (statusEnum.getValue() == value) { return statusEnum; } } return null; } }
时间: 2024-01-31 18:02:52 浏览: 75
这段代码本身已经很简洁了,但如果要进一步优化,可以考虑使用 Java 8 的 Stream API 来简化 getByValue 方法的实现。使用 Stream API 可以将枚举值转换为一个流,然后使用 filter 方法过滤出 value 属性等于传入值的枚举值,最后使用 findFirst 方法获取第一个匹配的枚举值。优化后的代码如下:
```
@AllArgsConstructor
@Getter
@NoArgsConstructor
public enum FormStatusEnum {
CREATE(1, "未发布"),
RELEASE(2, "收集中"),
STOP(3, "停止发布");
@EnumValue
@JsonValue
private int value;
private String desc;
/**
* 枚举入参注解
*
* @param value
* @return
*/
@JsonCreator
public static FormStatusEnum getByValue(int value) {
return Arrays.stream(FormStatusEnum.values())
.filter(statusEnum -> statusEnum.getValue() == value)
.findFirst()
.orElse(null);
}
}
```
这样,getByValue 方法就变得更加简洁了,而且代码逻辑也更加清晰易懂。
阅读全文