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

廊坊北京网站建设微信朋友圈广告30元 1000次

廊坊北京网站建设,微信朋友圈广告30元 1000次,做淘客网站简单吗,网站排名如何提升在数据库中常用数字来代替字符串类型&#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.mmbaike.com/news/29378.html

相关文章:

  • 优设网站廊坊百度关键词排名平台
  • 内蒙古城乡建设厅网站如何优化百度seo排名
  • 大连专业手机自适应网站制作常用的搜索引擎
  • 微信公众号做留言网站建网站需要什么条件
  • 杭州市做外贸网站的公司seo网站排名优化价格
  • 做网页设计师需要学什么seo专业课程
  • 做flash网站遇到函数广告竞价
  • 网站布局有哪些推广平台排行榜
  • 网站制作的分割线怎么做制作一个小型网站
  • 网站备案查询验证码错误深圳设计公司
  • 云速成美站做网站好吗网络安全有名的培训学校
  • 建设网站公司谁家好上海网站关键词排名优化报价
  • wordpress添加主题设置选项深圳网站关键词优化公司
  • web做网站含源代码google优化排名
  • 公司网站建设总结泰安百度推广代理商
  • asp sqlserver做网站2020 惠州seo服务
  • 政府网站 cms百度指数的作用
  • 第三方商城网站建设seo简介
  • 电商b2c网站icp备案免费下载百度软件
  • 企业网站搭建费用3d建模培训班一般多少钱
  • 网站的推广有哪些方式济南网站建设公司
  • 外汇网站开发推广普通话的宣传语
  • 湖北省住建厅网站官网百度收录需要多久
  • 做网站的排名网站seo具体怎么做?
  • 国内外网站开发技术有哪些舟山seo
  • 番禺网站建设平台一篇好的营销软文
  • 南宁网站建设电话百度的推广方式有哪些
  • 用cms建设网站课程宅门营销型网站建设应该考虑哪些因素
  • zencart 官方网站软文写作服务
  • 建设网站的步百度经验官网登录