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

Java枚举多值映射应用

在日常系统交互中,经常遇到两个系统间定义的枚举不一致,在接口调用时需要转换,记录实现,方便备查。
场景
双方的支付方式定义不同,一侧为数字,一侧为英文,若使用 if 判断,则显得繁琐,可以考虑使用枚举实现。
实现思想
将对应关系存放到 HashMap 中,根据 sourceCode 取对应的枚举对象,再取对应的属性。

第一步、定义枚举关系
import java.util.HashMap;
import lombok.Getter;@Getter
public enum PayMehodEnums {// 根据业务需求列出对应关系PAY_MEHOD_111("111","个人数字货币账户","SZHB","数字人民币"),PAY_MEHOD_222("222","微信账户","WXZF","微信"),PAY_MEHOD_333("333","支付宝账户","ZFB","支付宝");private String sourceCode;private String sourceName;private String targetCode;private String targetName;// 定义枚举内部信息PayMehodEnums(String sourceCode, String sourceName,String targetCode,String targetName) {this.sourceCode = sourceCode;this.sourceName = sourceName;this.targetCode = targetCode;this.targetName = targetName;}private static HashMap<String, PayMehodEnums> payMehodMap;static {int length = PayMehodEnum.values().length;HashMap<String, PayMehodEnums> hashMap = new HashMap<>(length);// 将源码值作为key,将对应信息存放到mapfor (PayMehodEnums value : PayMehodEnums.values()) {hashMap.put(value.getSourceCode(), value);}payMehodMap = hashMap;}// 根据源码获取对象信息public static PayMehodEnums getEnumCode(String code) {return payMehodMap.get(code);}}
第二步、测试效果
	@Testpublic void testPayType() {String targetCode = PayMehodEnums.getEnumCode("111").getTargetCode();String targetName = PayMehodEnums.getEnumCode("111").getTargetName();logger.info("解析的targetCode为:%s,targetName为%s", targetCode,targetName);}

测试结果如下图所示。
在这里插入图片描述
以上即为枚举的多值映射。

相关文章:

Java枚举多值映射应用

在日常系统交互中&#xff0c;经常遇到两个系统间定义的枚举不一致&#xff0c;在接口调用时需要转换&#xff0c;记录实现&#xff0c;方便备查。 场景 双方的支付方式定义不同&#xff0c;一侧为数字&#xff0c;一侧为英文&#xff0c;若使用 if 判断&#xff0c;则显得繁琐…...

css--浮动

一. 浮动的简介 在最初&#xff0c;浮动是用来实现文字环绕图片效果的&#xff0c;现在浮动是主流的页面布局方式之一。 二. 元素浮动后的特点 &#x1f922;脱离文档流。&#x1f60a;不管浮动前是什么元素&#xff0c;浮动后&#xff1a;默认宽与高都是被内容撑开&#xff0…...

基于有限状态机开发健壮的Nodejs/TCP客户端

有限状态机是一种数学计算模型&#xff0c;它描述了在任何给定时间只能处于一种状态的系统的行为。形式上&#xff0c;有限状态机有五个部分&#xff1a; 初始状态值 (initial state)有限的一组状态 (states)有限的一组事件 (events)由事件驱动的一组状态转移关系 (transition…...

javaEE13(网站第8章两个课后题)

1、对“jspservletjavabean实现分页查询”功能做如下补充&#xff1a; &#xff08;1&#xff09;记录批量删除&#xff1a;每个记录前添加复选框&#xff0c;点击批量删除&#xff0c;删除选中记录。 增加跳转到任意页功能。用户可改变每页记录条数。 页面&am…...

【Leetcode每日一题】 递归 - 反转链表(难度⭐)(35)

1. 题目解析 题目链接&#xff1a;206. 反转链表 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 一、递归函数的核心任务 递归函数的主要职责是接受一个链表的头指针&#xff0c;并返回该链表逆序后的新头结点。递归…...

Unity基础学习

目录 基础知识点3D数学——基础Mathf三角函数坐标系 3D数学——向量向量模长和单位向量向量的加减乘除向量点乘向量叉乘向量插值运算 3D数学——四元数为何使用四元数四元数是什么四元数常用方法四元数计算 MonoBehavior中的重要内容延迟函数协同程序协同程序原理 Resources资源…...

Java并发编程学习笔记:AQS

Java并发编程学习笔记&#xff1a;AQS 一、底层原理核心功能同步状态管理CLH 队列和线程调度机制独占模式与共享模式模板方法设计模式自旋、阻塞与超时机制 运行流程 二、锁的公平性公平锁非公平锁 三、容器实现 JUC中的AQS&#xff08;AbstractQueuedSynchronizer&#xff09;…...

Github上哪些好用的工具

专注于web漏洞挖掘、内网渗透、免杀和代码审计&#xff0c;感谢各位师傅的关注&#xff01;网安之路漫长&#xff0c;与君共勉&#xff01; Qexo-爱写博客的师傅强烈推荐 漂亮的 Hexo 静态博客编辑器。该项目是基于 Django 的 Hexo 静态博客管理后台&#xff0c;支持文章管理、…...

如何确保面试流程标准化操作,避免人为因素影响**

一、背景 在招聘过程中,面试作为关键环节,其标准化操作至关重要。标准化不仅有助于提高面试效率和质量,还能减少人为因素的影响,确保公平、公正和客观。本文将从以下八个方面探讨如何确保面试流程的标准化操作。 二、明确面试标准 制定明确的面试标准和要求,确保所有面试…...

YOLOv7改进 | 更换主干网络之PP-LCNet

前言:Hello大家好,我是小哥谈。PP-LCNet是一个由百度团队针对Intel-CPU端加速而设计的轻量高性能网络。它是一种基于MKLDNN加速策略的轻量级卷积神经网络,适用于多任务,并具有提高模型准确率的方法。与之前预测速度相近的模型相比,PP-LCNet具有更高的准确性。此外,对于计…...

MySQL基础-----多表查询之子查询

目录 前言 子查询概述 1.概念 2.分类 一、标量子查询 二、列子查询 三、行子查询 四、表子查询 前言 上一期我们讲了内外连接查询以及自连接查询&#xff0c;那么本期我们就学习多表查询的子查询。本期会详细讲解什么是子查询&#xff0c;以及子查询的相关功能&#xf…...

nginx应用场景(附配置)

场景1&#xff1a;web服务器 server {listen 80;server_name example.com; # 替换为您的域名location / {root /data/wwwroot;index index.html index.htm;} }server {listen 443 ssl;server_name example.com; # 替换为您的域名ssl_certificate /path/to/certificate.crt;ssl…...

tvm android_rpc_test.py执行报错解决

执行 python3 tests/android_rpc_test.py 报错&#xff1a; Run CPU test ... Traceback (most recent call last): File "tests/android_rpc_test.py", line 129, in <module> test_rpc_module() File "tests/android_rpc_test.py", line …...

十、项目沟通管理

十、项目沟通管理 从马斯洛需求的各个层级上&#xff0c;都需要沟通的介入。如果缺乏沟通&#xff0c;甚至可能严重损伤身心健康。 沟通渠道 1、 规划沟通管理 ​ 规划沟通管理是基于每个相关方或相关方群体的信息需求、可用的组织资产&#xff0c;以及具体项目的需求&#x…...

SQL设计时增加说明列

后关闭sql Studio,然后打开注册表,注册表地址: 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\SQL Server Management Studio\18.0_IsoShell\DataProject 如有版本不同,红色内容有所变化,修改内容如下: SSVPropViewColumnsSQL70,SSVPropViewColumnsSQL80 全修改为 1,2,6,7…...

前端提高性能——使用Intersection Observer API对图片视频进行懒加载

前言 最近做了一个项目是类似于商城的&#xff0c;需要放很多图片&#xff0c;在用户选择一页五十条时&#xff0c;页面加载速度会比较慢。为了提高性能&#xff0c;选择用Intersection Observer API 实现图片懒加载。 实现步骤 一、html代码&#xff1a; <img class&qu…...

杂七杂八111

MQ 用处 一、异步。可提高性能和吞吐量 二、解耦 三、削峰 四、可靠。常用消息队列可以保证消息不丢失、不重复消费、消息顺序、消息幂等 选型 一Kafak:吞吐量最大&#xff0c;性能最好&#xff0c;集群高可用。缺点&#xff1a;会丢数据&#xff0c;功能较单一。 二Ra…...

微信小程序(一)

WebView app.是全局配置&#xff0c;app.json是全局配置文件&#xff0c;在页面的.json配置文件中的配置会覆盖我们全局的配置 快捷键&#xff1a; .box 敲回车 ----- <view class"box"></view> .row*8 敲回车&#xff1a; .row{$}*8 敲回车 案例1&…...

【DL经典回顾】激活函数大汇总(十二)(GLU ReGLU附代码和详细公式)

激活函数大汇总&#xff08;十二&#xff09;&#xff08;GLU & ReGLU附代码和详细公式&#xff09; 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里&#xff0c;激活函数扮演着不可或…...

【C++】string类初步介绍

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 为什么学习string类1.1 C语言中的字符串1.2 推荐学习网站 2. 标准库中的string类2.1 string类2.2 string类的常用接口说明2.2.1 constructor2.2.2 遍历string2.2.2.1 下标加[]遍历2.2.2.2 迭代器&#xff08;itera…...

学习神经网络

一、神经网络概述&#xff1a;人工智能的核心基石&#xff08;一&#xff09;神经网络的定义与起源神经网络&#xff0c;全称为人工神经网络&#xff08;Artificial Neural Network&#xff0c;ANN&#xff09;&#xff0c;是一种模仿生物神经网络&#xff08;动物大脑神经元网…...

高效掌握多步提示工程:进阶AI任务处理的系统方法论

高效掌握多步提示工程&#xff1a;进阶AI任务处理的系统方法论 【免费下载链接】LangGPT LangGPT: Empowering everyone to become a prompt expert! &#x1f680; &#x1f4cc; 结构化提示词&#xff08;Structured Prompt&#xff09;提出者 &#x1f4cc; 元提示词&#x…...

DAMO-YOLO在Vue前端项目中的实时检测应用

DAMO-YOLO在Vue前端项目中的实时检测应用 1. 引言 想象一下&#xff0c;你正在开发一个智能安防系统&#xff0c;需要在网页上实时检测监控视频中的人员和车辆。传统的方案是将视频流发送到服务器处理&#xff0c;但网络延迟和隐私问题让人头疼。有没有可能在用户的浏览器里直…...

go-pry配置文件详解:自定义导入包和调试选项

go-pry配置文件详解&#xff1a;自定义导入包和调试选项 【免费下载链接】go-pry An interactive REPL for Go that allows you to drop into your code at any point. 项目地址: https://gitcode.com/gh_mirrors/go/go-pry go-pry是一款强大的Go语言交互式REPL工具&…...

2026年华为云OpenClaw如何安装?配置百炼API零门槛10分钟步骤

2026年华为云OpenClaw如何安装&#xff1f;配置百炼API零门槛10分钟步骤。OpenClaw&#xff08;曾用名Clawdbot&#xff09;是一款轻量化、可扩展的开源AI智能体执行框架&#xff0c;支持自然语言指令驱动、多模型灵活切换与全场景任务自动化。对于新手而言&#xff0c;阿里云轻…...

从PVT到CST:5种CiA402控制模式在机器人项目中的花式用法(附ROS2配置示例)

从PVT到CST&#xff1a;5种CiA402控制模式在机器人项目中的花式用法&#xff08;附ROS2配置示例&#xff09; 在工业机器人开发中&#xff0c;控制模式的灵活切换往往能解决80%的运动控制难题。当机械臂需要完成高精度装配时&#xff0c;CSP模式能保证微米级定位&#xff1b;执…...

Tetrazine-NHBoc,cas:1380500-93-5,四嗪-氨基叔丁酯的结构特点

Tetrazine-NHBoc&#xff08;四嗪-氨基叔丁酯&#xff09;是一种结合了四嗪基团和N-叔丁氧羰基&#xff08;NHBoc&#xff09;保护基的有机化合物&#xff0c;以下是对其的详细介绍&#xff1a;一、基本信息中文名称&#xff1a;四嗪-氨基叔丁酯英文名称&#xff1a;Tetrazine-…...

ms-swift多模态训练:图文视频语音混合训练,速度提升100%+

ms-swift多模态训练&#xff1a;图文视频语音混合训练&#xff0c;速度提升100% 1. 多模态训练的新选择 在AI模型开发领域&#xff0c;多模态训练一直是个技术难题。传统方法需要分别处理文本、图像、视频和语音数据&#xff0c;然后手动对齐不同模态的特征表示&#xff0c;整…...

SEO优化建站费用是多少_SEO建站平台有哪些_哪个比较好

SEO优化建站费用是多少&#xff1f;SEO建站平台有哪些&#xff1f;哪个比较好&#xff1f; 在当今数字化时代&#xff0c;建立一个成功的网站不仅仅是创建一个静态的信息展示平台&#xff0c;更是要通过SEO优化提升网站的可见性和流量。SEO优化建站费用是多少呢&#xff1f;SEO…...

HG-ha/MTools快速入门:3步部署,体验一体化桌面工具的魅力

HG-ha/MTools快速入门&#xff1a;3步部署&#xff0c;体验一体化桌面工具的魅力 1. 为什么选择MTools&#xff1f;——重新定义桌面生产力 现代开发者和创意工作者常常面临一个困境&#xff1a;需要在十几个专业软件之间来回切换&#xff0c;每个工具都有不同的操作逻辑和系…...