前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >分享一个我常用的枚举,使用频率很高

分享一个我常用的枚举,使用频率很高

原创
作者头像
半月无霜
发布2025-02-26 13:36:28
发布2025-02-26 13:36:28
440
举报
文章被收录于专栏:半月无霜半月无霜

一、介绍

在日常工作中,总会涉及事物的二元状态,什么是二元状态呢?

就是一个事物的两面,比如说灯泡的开关、文件的有效与无效,等等等等

那么就该有个枚举去控制转换这个状态了,那么Boolean.FALSEBoolean.TRUE不能正常去使用么

这只是两个布尔的值,实际上需要将其转为中文表述,转为01这样的值

如此一来,还是写个枚举方便点

至于java枚举,相信大家也不陌生了,直接上代码

二、代码

代码语言:java
复制
 package com.banmoon.business.enums;
 ​
 import cn.hutool.core.text.CharSequenceUtil;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 ​
 import java.util.Arrays;
 ​
 /**
  * 公共枚举,是和否
  */
 @Getter
 @AllArgsConstructor
 public enum YesNoEnum implements MyEnum<Integer> {
 ​
     /**
      * 否
      */
     NO(0, "N", "否", Boolean.FALSE),
     /**
      * 是
      */
     YES(1, "Y", "是", Boolean.TRUE),
     ;
 ​
     private final Integer code;
     private final String label;
     private final String msg;
     private final Boolean bool;
 ​
     public static Integer[] getArrays() {
         return Arrays.stream(values()).map(YesNoEnum::getCode).toArray(Integer[]::new);
     }
 ​
     public static String getMsgByCode(Integer code) {
         return Arrays.stream(values()).filter(e -> e.getCode().equals(code)).findFirst().map(YesNoEnum::getMsg).orElse(null);
     }
 ​
     public static Boolean getBoolByCode(Integer code) {
         return Arrays.stream(values()).filter(e -> e.getCode().equals(code)).findFirst().map(YesNoEnum::getBool).orElse(false);
     }
 ​
     public static String getMsgByLabel(String letter) {
         return Arrays.stream(values()).filter(e -> CharSequenceUtil.equalsIgnoreCase(letter, e.getLabel())).findFirst().map(YesNoEnum::getMsg).orElse(null);
     }
 ​
     public static Integer getCodeByCondition(Boolean condition) {
         return Boolean.TRUE.equals(condition) ? YES.getCode() : NO.getCode();
     }
 ​
 }

还有一个MyEnum的接口,当时规定出来是为了给自定义valid校验使用的

代码语言:java
复制
 package com.banmoon.business.enums;
 ​
 public interface MyEnum<T> {
 ​
     T getCode();
 ​
     String getMsg();
 ​
 }

有了上面的YesNoEnum.java的枚举后,很多转换就都可以用此枚举实现

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、介绍
  • 二、代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档