Java枚舉的內容可以使用map的方式

枚舉的內容可以使用map的方式

package com.chinamobile.framework.common.enums;import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;@SuppressWarnings("unused")
public interface BaseEnum {String getKey();String getValue();static <E> boolean isKeyExists(Class<E> enumClass, String key) {if (StringUtils.isEmpty(key)) {return false;}List<String> keys = getKeyList(enumClass);if (CollectionUtils.isEmpty(keys)) {return false;}return keys.contains(key);}static <E> boolean isValueExists(Class<E> enumClass, String value) {if (StringUtils.isEmpty(value)) {return false;}List<String> values = getValueList(enumClass);if (CollectionUtils.isEmpty(values)) {return false;}return values.contains(value);}static <E> List<String> getKeyList(Class<E> enumClass) {List<String> list = new ArrayList<>();if (!BaseEnum.class.isAssignableFrom(enumClass)) {return list;}for (E e : enumClass.getEnumConstants()) {BaseEnum ce = (BaseEnum) e;list.add(ce.getKey());}return list;}static <E> List<String> getValueList(Class<E> enumClass) {List<String> list = new ArrayList<>();if (!BaseEnum.class.isAssignableFrom(enumClass)) {return list;}for (E e : enumClass.getEnumConstants()) {BaseEnum ce = (BaseEnum) e;list.add(ce.getValue());}return list;}static <E> List<Map<String, String>> getMapList(Class<E> enumClass) {List<Map<String, String>> mapList = new ArrayList<>();if (!BaseEnum.class.isAssignableFrom(enumClass)) {return mapList;}for (E e : enumClass.getEnumConstants()) {BaseEnum ce = (BaseEnum) e;Map<String, String> map = new HashMap<>();map.put("key", ce.getKey());map.put("value", ce.getValue());mapList.add(map);}return mapList;}static List<Map<String, String>> getMapList(BaseEnum... enumData) {List<Map<String, String>> mapList = new ArrayList<>();for (BaseEnum ed : enumData) {Map<String, String> map = new HashMap<>();map.put("key", ed.getKey());map.put("value", ed.getValue());mapList.add(map);}return mapList;}static Map<String, String> getMap(BaseEnum enumData) {Map<String, String> enumMap = new HashMap<>();enumMap.put("key", enumData.getKey());enumMap.put("value", enumData.getValue());return enumMap;}static <E> String key2Value(Class<E> enumClass, String key) {if (!BaseEnum.class.isAssignableFrom(enumClass)) {return "";}for (E e : enumClass.getEnumConstants()) {BaseEnum ce = (BaseEnum) e;if (ce.getKey().equals(key)) {return ce.getValue();}}return "";}static <E> List<String> key2Value(Class<E> enumClass, List<String> keys) {if (CollectionUtils.isEmpty(keys)) {return new ArrayList<>();}List<String> values = new ArrayList<>();for (String key : keys) {values.add(key2Value(enumClass, key));}return values;}static <E> E key2Enum(Class<E> enumClass, String key) {if (!BaseEnum.class.isAssignableFrom(enumClass)) {return null;}for (E e : enumClass.getEnumConstants()) {BaseEnum ce = (BaseEnum) e;if (ce.getKey().equals(key)) {return e;}}return null;}static <E> List<E> key2Enum(Class<E> enumClass, List<String> keys) {if (CollectionUtils.isEmpty(keys)) {return new ArrayList<>();}List<E> enums = new ArrayList<>();for (String key : keys) {enums.add(key2Enum(enumClass, key));}return enums;}static <E> String value2Key(Class<E> enumClass, String value) {if (!BaseEnum.class.isAssignableFrom(enumClass)) {return "";}for (E e : enumClass.getEnumConstants()) {BaseEnum ce = (BaseEnum) e;if (ce.getValue().equalsIgnoreCase(value)) {return ce.getKey();}}return "";}static <E> List<String> value2Key(Class<E> enumClass, List<String> values) {if (CollectionUtils.isEmpty(values)) {return new ArrayList<>();}List<String> keys = new ArrayList<>();for (String value : values) {keys.add(value2Key(enumClass, value));}return keys;}static <E> E value2Enum(Class<E> enumClass, String value) {if (!BaseEnum.class.isAssignableFrom(enumClass)) {return null;}for (E e : enumClass.getEnumConstants()) {BaseEnum ce = (BaseEnum) e;if (ce.getValue().equals(value)) {return e;}}return null;}static <E> List<E> value2Enum(Class<E> enumClass, List<String> values) {if (CollectionUtils.isEmpty(values)) {return new ArrayList<>();}List<E> enums = new ArrayList<>();for (String value : values) {enums.add(value2Enum(enumClass, value));}return enums;}}

下面是繼承的示例

public enum OracleErrorTypeEnum implements BaseEnum  {DemandTask("DemandTask","需求調查任務"),DemandReport("DemandReport","需求調查填報"),DemandSummary("DemandSummary","需求調查匯總"),NEEDS_SURVEY( "NEEDS_SURVEY","需求調查業務");private String key;private String value;/*構造函數*/private OracleErrorTypeEnum(String key, String value) {this.key = key;this.value = value;}public String getKey() {return key;}public void setKey(String key) {this.key = key;}public String getValue() {return value;}public void setValue(String value) {this.value = value;}}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386817.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386817.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386817.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

tensorflow gpu windows配置步驟教學

本文主要針對在windows10環境下的tensorflow配置問題&#xff0c;在linux和mac等其他環境中的配置就不過多贅述(windows總是那個問題最多的環境&#xff0c;建議使用linux &#x1f603;)。 本文中配置的環境為 python 3.8.5 tensorflow-gpu 2.4.1 1. 更新nvidia顯卡驅動至最…

numpy一維數組永遠為列向量

import numpy as np a np.array([1,3,4,5]) print(a.shape) a np.transpose(a) print(a.shape) print(a)a np.ravel(a) print(a.shape) print(a)a a.reshape((1,4)) print(a.shape)輸出如下 (4,) (4,) [1 3 4 5] (4,) [1 3 4 5] (1, 4)我們會發現&#xff0c;對于一維的數…

【BJOI 2019】奧術神杖

題意 你有一個長度為 $n$ 的模板串&#xff08;由 $0-9$ 這 $10$ 個數字和通配符 $.$ 組成&#xff09;&#xff0c;還有 $m$ 個匹配串&#xff08;只由 $0-9$ 這 $10$ 個數字組成&#xff09;&#xff0c;每個匹配串有一個魔力值 $v_i$。你要把模板串的每個 $.$ 都換成一個數字…

keras模型中的默認初始化權重

權重的初始化&#xff0c;決定了模型訓練的起點。一個良好的初始化可以加快訓練過程&#xff0c;同時避免模型收斂至局部最小值。為了在訓練過程中避免使得權重的變化總沿著同一個方向&#xff0c;我們盡量避免將所有權重都初始化為同一個值&#xff0c;如全0矩陣或全1矩陣。 …

java oracle的枚舉錯誤

public enum OracleErrorTypeEnum implements BaseEnum {ORA00001("ORA-00001","不允許有重復的數據"),ORA00017("ORA-00017","請求會話以設置跟蹤事件"),ORA00018("ORA-00018","超出最大會話數"),ORA00019(&quo…

C# 篇基礎知識10——多線程

1.線程的概念 單核CPU的計算機中&#xff0c;一個時刻只能執行一條指令&#xff0c;操作系統以“時間片輪轉”的方式實現多個程序“同時”運行。操作系統以進程&#xff08;Process&#xff09;的方式運行應用程序&#xff0c;進程不但包括應用程序的指令流&#xff0c;也包括運…

keras中mean square error均方誤差理解

機器學習中&#xff0c;針對不同的問題選用不同的損失函數非常重要&#xff0c;而均方誤差就是最基本&#xff0c;也是在解決回歸問題時最常用的損失函數。本文就keras模塊均方誤差的計算梳理了一些細節。 首先看一下均方誤差的數學定義 : 均方誤差是預測向量與真實向量差值的…

Java并發Semaphore信號量的學習

public class MyThreadTest {private final static Semaphore semaphore new Semaphore(2);// 設置2個車位public static void main(String[] args) {System.out.println("start");p(semaphore, true, 1);p(semaphore, false, 2);p(semaphore, false, 3);p(semaphor…

快速理解binary cross entropy 二元交叉熵

Binary cross entropy 二元交叉熵是二分類問題中常用的一個Loss損失函數&#xff0c;在常見的機器學習模塊中都有實現。本文就二元交叉熵這個損失函數的原理&#xff0c;簡單地進行解釋。 首先是二元交叉熵的公式 : Loss?1N∑i1Nyi?log?(p(yi))(1?yi)?log(1?p(yi))Loss …

Docker搭建自己的GitLab

Docker搭建自己的GitLab docker 介紹 **GitLab: ** GitLab 是一個用于倉庫管理系統的開源項目&#xff0c;使用Git作為代碼管理工具&#xff0c;并在此基礎上搭建起來的web服務 **Docker: ** Docker 是一個開源的應用容器引擎&#xff0c;讓開發者可以打包他們的應用以及依賴…

kolla-ansible-----常用命令

常用命令 kolla-ansible prechecks -i multinode #部署前環境檢測 kolla-genpwd #生成/etc/kolla/password.yml密碼配置文件 kolla-ansible post-deploy -i multinode #生成認證文件 kolla-ansible mariadb_recovery -i /opt/mutinode #恢復數據庫 kolla-ansible -i multi…

python numpy 分離與合并復數矩陣實部虛部的方法

在進行數字信號處理的過程中&#xff0c;我們往往有對短時傅里葉變換頻譜(spectrogram)進行分析的需求。常見的分析手段對應歐拉公式分為兩種&#xff0c;要么使用模與相位的形式&#xff0c;要么使用實部虛部。本文分享一個簡單的將復數光譜圖分解為實部與虛部以及將兩個部分重…

flowable 任務節點多實例使用

我們在使用Flowable 工作流引擎的時候&#xff0c;最常用的肯定是任務節點&#xff0c;因為在OA系統、審批系統、辦公自動化系統中核心的處理就是流程的運轉&#xff0c;在流程運轉的時候&#xff0c;可能我們有這樣的一個需求&#xff0c;在一個任務節點的時候&#xff0c;我們…

LeetCode Range Sum Query Immutable

2131231轉載于:https://www.cnblogs.com/ZHONGZHENHUA/p/10873807.html

如何使用python導入mat格式的數據并整理

mat格式是一般而言的matlab數據的存儲格式&#xff0c;對于經常要混用matlab和python的數據處理相關的問題&#xff0c;我們往往需要將matlab中的數據導入至python&#xff0c;本文給出了相關的方法。 from scipy.io import loadmat import numpy as npdict_mat loadmat(&quo…

Java靜態類使用 使用 service

Springboot中如果希望在Utils工具類中&#xff0c;使用到我們已經定義過的Dao層或者Service層Bean&#xff0c;可以如下編寫Utils類&#xff1a; 1. 使用Component注解標記工具類StatisticsUtils&#xff1a; 2. 使用Autowired(Autowired和Resource的區別不再介紹)注入我們需…

Codeforces 1144D Deduction Queries 并查集

Deduction Queries 用并查集維護前綴的關系&#xff0c; 在同一個聯通塊內兩兩之間的異或值都是已知的。 每個點再維護一個和它當前父親的異或值&#xff0c; 壓縮路徑的時候更新一下就好了。 #include<bits/stdc.h> #define LL long long #define LD long double #defin…

python一步將npy數據保存成mat

import scipy.io as io io.savemat("dataname.mat", {data: npy_data})使用scipy庫中的io模塊&#xff0c;只需一步就可以將npy矩陣保存為mat格式文件&#xff0c;第一個參數是保存路徑&#xff0c;第二個參數需要輸入一個字典&#xff0c;data鍵對應需要保存的數據。…

docker oracle 11g

話不多說 開始記錄docker拉取阿里的oracle11g 鏡像并進行配置&#xff0c; 用pl/sql 可以登錄為最終結果 navicat連接是在最后一步 這是我們所需要進行拉取oracle鏡像的樓主所給出的說明 參考&#xff1a;https://blog.csdn.net/zwx521515/article/details/77982884 但是根…

Linux的目錄結構

Linux文件系統是呈樹形結構&#xff0c;了解Linux文件系統的目錄結構&#xff0c;對于我們駕馭Linux還是有必要的。 目錄 說明 / Linux文件系統的入口&#xff0c;也是處于最高一級的目錄 /bin 基本系統所需要的命令。功能和/usr/bin類似&#xff0c;這個目錄中的文件都是…