这篇文章主要介绍了如何在java中使用enum根据value值获取key键,亿速云小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随亿速云小编来看看吧!
Java的特点有哪些 1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。 3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
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;
}
}
private String getZjlx(String zjlxCn) {
Optional<ZjlxEnum> m1 = EnumUtil.getEnumObject(ZjlxEnum.class, e -> e.getLabel().equals(zjlxCn));
return m1.isPresent() ? m1.get().getValue() : null;
}
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键,如何觉得亿速云网站的内容还不错,欢迎将亿速云网站推荐给身边好友。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。