对于java
枚举不陌生了,直接上代码
使用了一个接口,用来规定一下里面的字段,统一下好处理
package com.banmoon.test.enums;
public interface MyEnum<T> {
T getCode();
String getMsg();
}
package com.banmoon.test.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
@Getter
@AllArgsConstructor
public enum EnableStatusEnum implements MyEnum<Integer>{
ZERO(0, "禁用"),
ONE(1, "正常"),
;
public final Integer code;
public final String msg;
public static EnableStatusEnum getByCode(Integer code) {
return getByCode(code, null);
}
public static EnableStatusEnum getByCode(Integer code, EnableStatusEnum defaultEnum) {
return Arrays.stream(values()).filter(a -> a.getCode().equals(code)).findFirst().orElse(defaultEnum);
}
public static String getMsgByCode(Integer code) {
return getMsgByCode(code, "");
}
public static String getMsgByCode(Integer code, String defaultMsg) {
return Arrays.stream(values()).filter(a -> a.getCode().equals(code)).findFirst().map(EnableStatusEnum::getMsg).orElse(defaultMsg);
}
}
大家也都知道,枚举这东西对于一批固定的几个状态值进行管理。
通常是某张表的一些状态值,如果一张表里面有多个状态值,我们可以这样写一个常量类,里面放置每一个字段的枚举类
package io.yunshuo.dataset.enums;
import io.yunshuo.commons.tools.exception.RenException;
import io.yunshuo.dataset.entity.DataDatasetVersionEntity;
import lombok.AllArgsConstructor;
import lombok.Getter;
public class DataVersionConstant {
/**
* 导入状态 0:无状态 1:导入中 2:导入完成
*/
@Getter
@AllArgsConstructor
public enum ImportStatus {
STATUS_LESS(0, "无状态"),
IMPORTING(1, "导入中"),
IMPORT_SUCCESS(2, "导入成功"),
;
private final Integer code;
private final String msg;
}
/**
* 导出状态 0:无状态 1:导出中 2:导出完成
*/
@Getter
@AllArgsConstructor
public enum ExportStatus {
STATUS_LESS(0, "无状态"),
EXPORTING(1, "导出中"),
EXPORT_SUCCESS(2, "导出成功"),
;
private final Integer code;
private final String msg;
}
/**
* 标注状态 0:未标注 1:手动标注中 2:自动标注中 3:自动标注完成 4:标注完成
*/
@Getter
@AllArgsConstructor
public enum AnnotateStatus {
NOT_ANNOTATE(0, "未标注"),
ANNOTATING(1, "手动标注中"),
AUTO_ANNOTATING(2, "自动标注中"),
AUTO_ANNOTATE_SUCCESS(32, "自动标注完成"),
ANNOTATE_SUCCESS(4, "标注完成"),
;
private final Integer code;
private final String msg;
}
/**
* 增强状态 0:无状态 1:增强中 2:增强完成
*/
@Getter
@AllArgsConstructor
public enum EnhanceStatus {
STATUS_LESS(0, "无状态"),
ENHANCING(1, "增强中"),
ENHANCE_SUCCESS(2, "增强完成"),
;
private final Integer code;
private final String msg;
}
/**
* 清洗状态 0:无状态 1:清洗中 2:清洗完成
*/
@Getter
@AllArgsConstructor
public enum CleanStatus {
STATUS_LESS(0, "无状态"),
CLEANING(1, "清洗中"),
CLEAN_SUCCESS(2, "清洗完成"),
;
private final Integer code;
private final String msg;
}
}
没什么技术含量的,就是分享一下,我是这样使用枚举的
我觉得挺清晰明了的
我是半月,你我一同共勉!!!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有