当前位置: 首页 > news >正文

哪里有零基础网站建设教学服务云计算培训

哪里有零基础网站建设教学服务,云计算培训,软件下载大全网站,北京市工程建设交易网在数据库中常用数字来代替字符串类型&#xff0c;编写一个枚举映射类 当数据库的介质类型要存储数字&#xff0c;前端可以任意传参&#xff0c;通过枚举转换后端都会转成数字对应类型 import lombok.Getter;/*** <p>* 存档介质类型* </p>** author Jyang* date 2…

在数据库中常用数字来代替字符串类型,编写一个枚举映射类

当数据库的介质类型要存储数字,前端可以任意传参,通过枚举转换后端都会转成数字对应类型 

import lombok.Getter;/*** <p>* 存档介质类型* </p>** @author Jyang* @date 2024/11/14*/
@Getter
public enum ArchiveMediumTypeEnum implements DescriptiveEnum {PAPER(1, "纸质"),ELECTRONIC(2, "电子");private final int code;private final String desc;ArchiveMediumTypeEnum(int code, String desc) {this.code = code;this.desc = desc;}@Overridepublic int getCode() {return code;}@Overridepublic String getDesc() {return desc;}
}
/*** <p>* 适用于数据库存储的描述性枚举* </p>** @author Jyang* @date 2024/11/14*/public interface DescriptiveEnum {/*** 编码*/int getCode();/*** 描述*/String getDesc();
}
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;/*** <p>* 枚举转换* </p>** @author Jyang* @date 2024/11/14*/public class DescriptiveEnumConverter<T extends Enum<T> & DescriptiveEnum> {/*** key:code* value:泛型枚举*/private final Map<Integer, T> codeToEnum = new HashMap<>();/*** key:描述信息* value:泛型枚举*/private final Map<String, T> descToEnum = new HashMap<>();/*** 使用Map存储作为单例模式*/private static final Map<Class<?>, DescriptiveEnumConverter<?>> CACHE = new ConcurrentHashMap<>();public static <T extends Enum<T> & DescriptiveEnum> DescriptiveEnumConverter<T> of(Class<T> enumClass) {return (DescriptiveEnumConverter<T>) CACHE.computeIfAbsent(enumClass,(Class<?> k) -> new DescriptiveEnumConverter<>(enumClass));}public DescriptiveEnumConverter(Class<T> enumClass) {for (T enumConstant : enumClass.getEnumConstants()) {codeToEnum.put(enumConstant.getCode(), enumConstant);descToEnum.put(enumConstant.getDesc(), enumConstant);}}/*** 根据编码获取描述** @param code 编码* @return*/public String getDescByCode(Integer code) {return codeToEnum.get(code).getDesc();}/*** 根据描述获取编码** @param desc 描述* @return*/public Integer getCodeByDesc(String desc) {return descToEnum.get(desc).getCode();}/*** 统一返回编码** @param codeOrDesc 编码或者描述* @return 编码*/public Integer getCode(Object codeOrDesc) {return Optional.ofNullable(codeToEnum.get(codeOrDesc)).orElseGet(() -> descToEnum.get(codeOrDesc)).getCode();}/*** 统一返回描述** @param codeOrDesc 编码或者描述* @return 描述*/public String getDesc(Object codeOrDesc) {return Optional.ofNullable(codeToEnum.get(codeOrDesc)).orElseGet(() -> descToEnum.get(codeOrDesc)).getDesc();}/*** 根据编码获取枚举** @param code 编码* @return 枚举*/public T fromCode(Integer code) {return codeToEnum.get(code);}/*** 根据描述获取类型** @param desc 描述* @return 枚举*/public T fromDesc(String desc) {return descToEnum.get(desc);}/*** 根据枚举获取编码** @param enumValue 枚举* @return 编码*/public Integer toCode(T enumValue) {return Optional.ofNullable(enumValue).map(DescriptiveEnum::getCode).orElse(null);}/*** 根据枚举获取描述** @param enumValue 枚举* @return 描述*/public String toDesc(T enumValue) {return Optional.ofNullable(enumValue).map(DescriptiveEnum::getDesc).orElse(null);}
}
    /*** 使用方式* * @param args*/public static void main(String[] args) {/*** 根据编码或者描述统一返回编码*/Integer code1 = DescriptiveEnumConverter.of(ArchiveMediumTypeEnum.class).getCode(1);System.out.println("code1 = " + code1);Integer code2 = DescriptiveEnumConverter.of(ArchiveMediumTypeEnum.class).getCode("纸质");System.out.println("code2 = " + code2);/*** 根据编码或者描述统一返回描述信息*/String desc1 = DescriptiveEnumConverter.of(ArchiveMediumTypeEnum.class).getDesc(2);System.out.println("desc = " + desc1);String desc2 = DescriptiveEnumConverter.of(ArchiveMediumTypeEnum.class).getDesc("电子");System.out.println("desc = " + desc2);/*** 根据枚举返回编码*/Integer toCode = DescriptiveEnumConverter.of(ArchiveMediumTypeEnum.class).toCode(ArchiveMediumTypeEnum.PAPER);String toDesc = DescriptiveEnumConverter.of(ArchiveMediumTypeEnum.class).toDesc(ArchiveMediumTypeEnum.ELECTRONIC);}

http://www.zhongyajixie.com/news/35314.html

相关文章:

  • 吉林省人民政府门户网站网页推广怎么做的
  • 企业微信官方网站如何制作视频网站
  • 免费企业建站模板百度优化推广
  • 代办医疗网站域名备案管理课程培训
  • 个人店铺logo百度优化大师
  • 网站收藏的链接怎么做的百度权重1是什么意思
  • 郑州网站建设哪家公司好视频广告联盟平台
  • 不懂外贸做外贸网站好做吗网页搭建
  • 兖州网站建设多少钱温州seo服务
  • 东莞宣传网站最近大事件新闻
  • 免费做网站的站长统计网站统计
  • 娄底高端网站建设网络工程师是干什么的
  • 安徽省建设造价管理协会网站南京seo按天计费
  • iis的网站默认端口2022好用值得推荐的搜索引擎
  • wordpress修改导航栏广州优化公司哪家好
  • wordpress 免签约主题seo网站搭建是什么
  • 银川市做网站的公司网络优化培训
  • 射阳网站开发公司网站建设代理
  • 网站哪家做的比较好友情链接多少钱一个
  • 网站制作苏州优化营商环境心得体会
  • 怎么查什么时候做的网站北京seo招聘信息
  • 邯郸市网站建设百度关键词搜索排名多少钱
  • 专业做网站企业北京seo站内优化
  • 济南一哥网站建设公司百度推广入口
  • 网站网站开发免费创建网站的平台
  • 宁波seo深度优化平台有哪些seo网络培训班
  • 建网站做点什么好惠东seo公司
  • 怎么做中英文网站怎么制作网站教程步骤
  • 房地产网站加盟新浪微博指数查询
  • 武汉新天厦建设工程有限公司网站搜索引擎优化方法