java枚举enum,根据value值获取key键的操作
1.ZjlxEnum.java
publicenumZjlxEnumimplementsIEnum{ SFZ("1","居民身份证"), XGZM("2","香港特区护照/身份证明"), AMZM("3","澳门特区护照/身份证明"), TWTXZ("4","台湾居民来往大陆通行证"), JWJZZ("5","境外永久居住证"), HZ("6","护照"), QT("7","其他"); privateStringvalue; privateStringlabel; publicStringgetValue(){ returnthis.value; } publicStringgetLabel(){ returnthis.label; } }
2.调用方式:
privateStringgetZjlx(StringzjlxCn){ Optionalm1=EnumUtil.getEnumObject(ZjlxEnum.class,e->e.getLabel().equals(zjlxCn)); returnm1.isPresent()?m1.get().getValue():null; }
3.EnumUtil.java
publicclassEnumUtil{ privatestaticMapmap=newConcurrentHashMap<>(); /** *根据条件获取枚举对象 * *@paramclassName枚举类 *@parampredicate筛选条件 *@param *@return */ publicstatic Optional getEnumObject(Class className,Predicate predicate){ if(!className.isEnum()){ returnnull; } Objectobj=map.get(className); T[]ts=null; if(obj==null){ ts=className.getEnumConstants(); map.put(className,ts); }else{ ts=(T[])obj; } returnArrays.stream(ts).filter(predicate).findAny(); } }
补充:Java遍历枚举(Enum)的Value和相对应的Index
遍历枚举:
publicclassColorIndexTest{ @SuppressWarnings("resource") publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub HSSFColorPredefined[]allColor=HSSFColorPredefined.values(); for(inti=0;i以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。