java枚舉enum,根據(jù)value值獲取key鍵的操作
1.ZjlxEnum.java
public enum ZjlxEnum implements IEnum { SFZ("1", "居民身份證"), XGZM("2", "香港特區(qū)護(hù)照/身份證明"), AMZM("3", "澳門特區(qū)護(hù)照/身份證明"), TWTXZ("4", "臺(tái)灣居民來(lái)往大陸通行證"), JWJZZ("5", "境外永久居住證"), HZ("6", "護(hù)照"), QT("7", "其他"); private String value; private String label; public String getValue() { return this.value; } public String getLabel() { return this.label; } }
2.調(diào)用方式:
private String getZjlx(String zjlxCn) { Optional<ZjlxEnum> m1 = EnumUtil.getEnumObject(ZjlxEnum.class, e -> e.getLabel().equals(zjlxCn)); return m1.isPresent() ? m1.get().getValue() : null; }
3.EnumUtil.java
public class EnumUtil { private static Map<Class, Object> map = new ConcurrentHashMap<>(); /** * 根據(jù)條件獲取枚舉對(duì)象 * * @param className 枚舉類 * @param predicate 篩選條件 * @param <T> * @return */ public static <T> Optional<T> getEnumObject(Class<T> className, Predicate<T> predicate) { if (!className.isEnum()) { return null; } Object obj = map.get(className); T[] ts = null; if (obj == null) { ts = className.getEnumConstants(); map.put(className, ts); } else { ts = (T[]) obj; } return Arrays.stream(ts).filter(predicate).findAny(); } }
補(bǔ)充:Java遍歷枚舉(Enum)的Value和相對(duì)應(yīng)的Index
遍歷枚舉:
public class ColorIndexTest { @SuppressWarnings("resource") public static void main(String[] args) { // TODO Auto-generated method stub HSSFColorPredefined[] allColor = HSSFColorPredefined.values(); for(int i = 0;i < allColor.length;i++) { System.out.println(allColor[i].name() + " == " + allColor[i].ordinal()); } } }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Unity&Springboot實(shí)現(xiàn)本地登陸驗(yàn)證
本文主要介紹了Unity&Springboot服務(wù)器/本地登陸驗(yàn)證,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07Spring MVC 中攔截器的使用示例詳解"攔截器基本配置"和 &q
Spring MVC 的攔截器作用是在請(qǐng)求到達(dá)控制器之前或之后進(jìn)行攔截,可以對(duì)請(qǐng)求和響應(yīng)進(jìn)行一些特定的處理,這篇文章主要介紹了Spring MVC 中的攔截器的使用“攔截器基本配置” 和 “攔截器高級(jí)配置”,需要的朋友可以參考下2024-07-07詳解Java中方法next()和nextLine()的區(qū)別與易錯(cuò)點(diǎn)
這篇文章主要介紹了詳解Java中方法next()和nextLine()的區(qū)別與易錯(cuò)點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11springboot后端使用LocalDate接收日期的問(wèn)題解決
在做Java開(kāi)發(fā)時(shí),肯定會(huì)碰到傳遞時(shí)間參數(shù)的情況,本文主要介紹了springboot后端使用LocalDate接收日期的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09SpringCloud中數(shù)據(jù)認(rèn)證加密的方法總結(jié)
在當(dāng)今分布式系統(tǒng)的日益復(fù)雜和信息傳遞的廣泛網(wǎng)絡(luò)化環(huán)境中,數(shù)據(jù)的加密和認(rèn)證作為保障信息傳遞安全的關(guān)鍵手段,Spring?Cloud,作為一套構(gòu)建微服務(wù)架構(gòu)的強(qiáng)大框架,提供了多種靈活而強(qiáng)大的數(shù)據(jù)加密和認(rèn)證方式,本文給大家總結(jié)了SpringCloud數(shù)據(jù)認(rèn)證加密的方法2024-03-03詳解如何將JAR包發(fā)布到Maven中央倉(cāng)庫(kù)
這篇文章主要介紹了詳解如何將JAR包發(fā)布到Maven中央倉(cāng)庫(kù),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01簡(jiǎn)單理解遵循接口隔離原則的Java設(shè)計(jì)模式編程
這篇文章主要介紹了遵循接口隔離原則的Java設(shè)計(jì)模式編程,針對(duì)Java編程中interface接口方面的編寫進(jìn)行約束,需要的朋友可以參考下2016-02-02