当前位置: 首页 > 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…...

Omni-Vision Sanctuary 开发环境搭建:基于 Ubuntu 与 Anaconda 的完整配置流程

Omni-Vision Sanctuary 开发环境搭建&#xff1a;基于 Ubuntu 与 Anaconda 的完整配置流程 1. 引言 如果你是一名计算机视觉研究者或开发者&#xff0c;想要在本地搭建Omni-Vision Sanctuary模型的开发环境&#xff0c;这篇文章将为你提供一份详细的Ubuntu系统配置指南。我们…...

用ESP32-S3和百度AI做个会聊天的智能音箱(Arduino+文心一言+语音识别)

用ESP32-S3和百度AI打造会聊天的智能音箱&#xff1a;从硬件组装到语音交互全流程 想象一下&#xff0c;清晨醒来只需对桌上的小盒子说句"今天天气如何"&#xff0c;就能听到温柔的女声播报天气预报&#xff1b;工作时随口问"量子计算是什么"&#xff0c;立…...

Wan2.2-I2V-A14B开源大模型部署:PyTorch 2.4+CUDA 12.4兼容性验证

Wan2.2-I2V-A14B开源大模型部署&#xff1a;PyTorch 2.4CUDA 12.4兼容性验证 1. 镜像概述与核心价值 Wan2.2-I2V-A14B是一款专注于文本到视频生成的开源大模型&#xff0c;其私有部署镜像经过深度优化&#xff0c;能够充分发挥RTX 4090D显卡的性能优势。这个镜像最大的特点在…...

LeagueAkari:如何用数据驱动你的英雄联盟竞技水平提升

LeagueAkari&#xff1a;如何用数据驱动你的英雄联盟竞技水平提升 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在英雄联盟这款全球热门的竞…...

Bambu Studio终极实战指南:5大核心技术深度解析与3D打印效率优化方案

Bambu Studio终极实战指南&#xff1a;5大核心技术深度解析与3D打印效率优化方案 【免费下载链接】BambuStudio PC Software for BambuLab and other 3D printers 项目地址: https://gitcode.com/GitHub_Trending/ba/BambuStudio Bambu Studio作为专为BambuLab系列3D打印…...

ComfyUI效果实测:多插件加持下的高清AI绘画生成对比

ComfyUI效果实测&#xff1a;多插件加持下的高清AI绘画生成对比 1. 引言&#xff1a;为什么选择ComfyUI 在AI绘画领域&#xff0c;ComfyUI以其独特的工作流设计方式脱颖而出。与传统的AI绘画工具不同&#xff0c;ComfyUI采用节点式工作流设计&#xff0c;让用户可以像搭积木一…...

华三中小型企业二层组网配置案例一(单ISP+单链路)

1. 组网拓扑某企业内部共划分 4 个业务部门&#xff0c;为实现部门间网络隔离与安全访问控制&#xff0c;分别规划独立网段&#xff1a;192.168.10.0/24、192.168.20.0/24、192.168.30.0/24、192.168.40.0/24。核心交换机作为三层网关&#xff0c;配置各网段 VLANIF 接口地址&a…...

vscode如何添加ollama本地模型-实现token自由

vscode一直支持的都是云端闭源的模型&#xff0c;例如 GPT Claude等等&#xff0c;当这些闭源模型的免费额度用完之后&#xff0c;则需要付费继续使用。本文介绍的是vscode接入ollama的本地模型&#xff0c;从而实现token自由。 ollama 首先需要到ollama的官网下载ollama应用…...

在ESP32上为LVGL 8.x添加中文输入法:从拼音到候选词显示的完整实现

在ESP32上为LVGL 8.x实现高性能中文输入法的工程实践 当我们在智能家居控制面板上输入Wi-Fi密码时&#xff0c;或者在工业HMI设备中输入参数时&#xff0c;中文输入往往成为嵌入式设备最令人头疼的用户体验瓶颈。ESP32作为物联网领域的主流芯片&#xff0c;其有限的RAM资源&…...

如何免费构建个人游戏串流服务器:Sunshine开源方案完整指南

如何免费构建个人游戏串流服务器&#xff1a;Sunshine开源方案完整指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款开源的自托管游戏串流服务器&#xff0c;让您…...