java枚舉enum,根據(jù)value值獲取key鍵的操作
更新時間:2021年02月24日 09:47:40 作者:jajave
這篇文章主要介紹了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", "臺灣居民來往大陸通行證"), 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ù)條件獲取枚舉對象 * * @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和相對應(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()); } } }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Unity&Springboot實現(xiàn)本地登陸驗證
本文主要介紹了Unity&Springboot服務(wù)器/本地登陸驗證,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07Spring MVC 中攔截器的使用示例詳解"攔截器基本配置"和 &q
Spring MVC 的攔截器作用是在請求到達(dá)控制器之前或之后進(jìn)行攔截,可以對請求和響應(yīng)進(jìn)行一些特定的處理,這篇文章主要介紹了Spring MVC 中的攔截器的使用“攔截器基本配置” 和 “攔截器高級配置”,需要的朋友可以參考下2024-07-07詳解Java中方法next()和nextLine()的區(qū)別與易錯點
這篇文章主要介紹了詳解Java中方法next()和nextLine()的區(qū)別與易錯點,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11springboot后端使用LocalDate接收日期的問題解決
在做Java開發(fā)時,肯定會碰到傳遞時間參數(shù)的情況,本文主要介紹了springboot后端使用LocalDate接收日期的問題解決,具有一定的參考價值,感興趣的可以了解一下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