如何在java中使用enum根据value值获取key键

2023-05-19,,

这篇文章主要介绍了如何在java中使用enum根据value值获取key键,本站小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随本站小编来看看吧!

Java的特点有哪些

Java的特点有哪些
1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。
3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

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

以上就是本站小编为大家收集整理的如何在java中使用enum根据value值获取key键,如何觉得本站网站的内容还不错,欢迎将本站网站推荐给身边好友。

《如何在java中使用enum根据value值获取key键.doc》

下载本文的Word格式文档,以方便收藏与打印。