java枚举enum,根据value值获取key键的操作

网友投稿 239 2023-01-29

java枚举enum,根据value值获取key键的操作

1.ZjlxEnum.java

public enum ZjlxEnum implements IEnum {

SFZ("1", "居民身份证"),

XGZM("2", "香港特区护照/身份证明"),

AMZM("3", "澳门特区护照/身份证明"),

TWTXZ("4", "台湾居民来往大陆通行证"),

JWJZZ("5", "境外永久居住证"),

HZ("6", "护照"),

QT("7", "其他");

private String value;

private String label;

public String getValue() {

return this.value;

}

public String getLabel() {

return this.label;

}

}

2.调用方式:

private String getZjlx(String zjlxCn) {

Optional 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 map = new ConcurrentHashMap<>();

/**

* 根据条件获取枚举对象

*

* @param className 枚举类

* @param predicate 筛选条件

* @param

* @return

*/

public static Optional getEnumObject(Class className, Predicate 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();

}

}

补充:Java遍历枚举(Enum)的Value和相对应的Index

遍历枚举:

public class ColonYHXygkrIndexTest {

@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());

}

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:话费充值api骗局案例(话费充值陷阱)
下一篇:话费充值api骗局(话费充值 骗局)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~