分享一下我是怎么使用枚举的
一、介绍
对于java
枚举不陌生了,直接上代码
二、代码
使用了一个接口,用来规定一下里面的字段,统一下好处理
1 2 3 4 5 6 7 8 9
| package com.banmoon.test.enums;
public interface MyEnum<T> {
T getCode();
String getMsg();
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| 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); }
}
|
大家也都知道,枚举这东西对于一批固定的几个状态值进行管理。
通常是某张表的一些状态值,如果一张表里面有多个状态值,我们可以这样写一个常量类,里面放置每一个字段的枚举类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| 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 {
@Getter @AllArgsConstructor public enum ImportStatus {
STATUS_LESS(0, "无状态"), IMPORTING(1, "导入中"), IMPORT_SUCCESS(2, "导入成功"), ;
private final Integer code; private final String msg; }
@Getter @AllArgsConstructor public enum ExportStatus {
STATUS_LESS(0, "无状态"), EXPORTING(1, "导出中"), EXPORT_SUCCESS(2, "导出成功"), ;
private final Integer code; private final String msg; }
@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; }
@Getter @AllArgsConstructor public enum EnhanceStatus {
STATUS_LESS(0, "无状态"), ENHANCING(1, "增强中"), ENHANCE_SUCCESS(2, "增强完成"), ;
private final Integer code; private final String msg; }
@Getter @AllArgsConstructor public enum CleanStatus {
STATUS_LESS(0, "无状态"), CLEANING(1, "清洗中"), CLEAN_SUCCESS(2, "清洗完成"), ;
private final Integer code; private final String msg; }
}
|
三、最后
没什么技术含量的,就是分享一下,我是这样使用枚举的
我觉得挺清晰明了的
我是半月,你我一同共勉!!!