java枚举enum,根据value值获取key键的操作
时间:2021-04-14 09:02:56|栏目:JAVA代码|点击: 次
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<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<>();
/**
* 根据条件获取枚举对象
*
* @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();
}
}
补充:Java遍历枚举(Enum)的Value和相对应的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());
}
}
}
上一篇:详解PowerDesigner之CDM、PDM、SQL之间转换
栏 目:JAVA代码
本文标题:java枚举enum,根据value值获取key键的操作
本文地址:http://www.codeinn.net/misctech/100762.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




