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
*/
publicstaticOptionalgetEnumObject(ClassclassName,Predicatepredicate){
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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。