博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
枚举工具类
阅读量:6952 次
发布时间:2019-06-27

本文共 2017 字,大约阅读时间需要 6 分钟。

import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.Serializable;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public final class EnumHelper implements Serializable {    private static final long serialVersionUID = 5L;    private static final String GET_CODE_METHOD = "getCode";    private static final String GET_LABEL_METHOD = "getText";    private static final Logger LOGGER = LoggerFactory.getLogger(EnumHelper.class);    private EnumHelper() {    }    public static 
> List
inspectConstants(final Class
clazz) { return new ArrayList
(Arrays.asList(clazz.getEnumConstants())); } public static
> List
inspectConstants( final Class
clazz, boolean containsNull) { List
list = new ArrayList
(Arrays.asList(clazz.getEnumConstants())); if (!containsNull) { list.remove(0); } return list; } public static
> T translate(final Class
clazz,final String code) { if (code == null) { return null; } try { final Method m = clazz.getDeclaredMethod(GET_CODE_METHOD); for (T t : inspectConstants(clazz)) { if (code.equals(m.invoke(t))) { return t; } } } catch (Exception e) { // NOSONAR LOGGER.error("failed to translate code {} into object of type {}", code, clazz); } return null; } public static
> String getCode(final T obj) { if (obj == null) { return null; } try { Class
clazz = obj.getClass(); final Method m = clazz.getDeclaredMethod(GET_CODE_METHOD); return m.invoke(obj).toString(); } catch (Exception e) { // NOSONAR // ignore } return null; } public static
> T translateByLabel(final Class
clazz,final String label) { if (label == null) { return null; } try { final Method m = clazz.getDeclaredMethod(GET_LABEL_METHOD); for (T t : inspectConstants(clazz)) { if (label.equals(m.invoke(t))) { return t; } } } catch (Exception e) { // NOSONAR // ignore LOGGER.error("failed to translate label {} into object of type {}",label, clazz); } return null; }}复制代码

转载地址:http://hbnil.baihongyu.com/

你可能感兴趣的文章
Linux 防火墙
查看>>
简练软考知识点整理-外指赶快先提投降
查看>>
32 MySQL主从
查看>>
HanLP-分类模块的分词器介绍
查看>>
Raid5磁盘阵列修复方法介绍
查看>>
技术解析系列 | PouchContainer 支持 LXCFS 实现高可靠容器隔离
查看>>
linux中web服务器的基本配置
查看>>
linux服务器之间设置ssh免密登录
查看>>
如何将M4A格式的音频转换为MP3格式?只需一步搞定
查看>>
APP项目资源对接平台有那几家
查看>>
微信自定义网页分享链接(可自定义链接 图片 内容介绍)
查看>>
Oracle管理表空间(三)--Oracle UNDO表空间
查看>>
Oracle使用rman进行表空间基于时间点的恢复
查看>>
DNS 多网段的反向记录
查看>>
mac效率工具
查看>>
Oracle imp和exp的使用
查看>>
软件工程---典型用户
查看>>
Acunetix Web Vulnerability Scanner 8.x.x 逆向
查看>>
判断是否是IP地址格式
查看>>
我心目中的牛程序员、我们可以对比看看(人家还是看多年朋友面子上才肯帮忙1周,至少需支付1万元辛苦费)...
查看>>