我是靠谱客的博主 甜甜纸鹤,最近开发中收集的这篇文章主要介绍【utils】通过枚举中的某个字段值获取枚举的EnumUtil工具类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

有的时候遇到这种情况 , 我们有枚举的其中一个字段的值 , 然后通过这个值获取枚举或者其他字段的信息 , 如果没有工具类 , 就需要在每个枚举中添加相应的方法 , 通过工具类的方法可以减少代码量 , 更加简洁美观

创建一个接口 CommonEnum

/**
* 枚举接口
*/
public interface CommonEnum {
//此处对应枚举的字段,如状态枚举StatusEnum定义了code,name,desc
//那么这里定义这个三个字段的get方法,可以获取到所有的字段
int getCode();
String getName();
String getDesc();
}

枚举实现这个接口

/**
* 状态枚举
*/
public enum StatusEnum implements CommonEnum {
WAITTING(0, "WAITTING", "等待"),
STARTED(1, "STARTED", "开始"),
END(2, "END", "结束");
private int code;
private String name;
private String desc;
StatusEnum(int code, String name, String desc) {
this.code = code;
this.name = name;
this.desc = desc;
}
@overwrite
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
@overwrite
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@overwrite
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}

工具类EnumUtil

/**
* 枚举工具类
*/
public class EnumUtil {
/**
* 返回指定编码的'枚举'
* @param code
* @return SharedObjTypeEnum
* @throws
*/
public static <T extends CommonEnum> T getEnumBycode(Class<T> clazz, int code) {
for(T _enum : clazz.getEnumConstants())
if(code == _enum.getCode())
return _enum;
return null;
}
/**
* 返回指定名称的'枚举'
* @param name
* @return SharedObjTypeEnum
* @throws
*/
public static <T extends CommonEnum> T getEnumByName(Class<T> clazz, String name) {
for(T _enum : clazz.getEnumConstants())
if(_enum.getCode().equals(name))
return _enum;
return null;
}
/**
* 返回指定描述的'枚举'
* @param desc
* @return SharedObjTypeEnum
* @throws
*/
public static <T extends CommonEnum> T getEnumByDesc(Class<T> clazz, String desc) {
for(T _enum : clazz.getEnumConstants())
if(_enum.getCode().equals(desc))
return _enum;
return null;
}
}

使用方法

StatusEnum statusEnum = EnumUtil.getEnumBycode(StatusEnum.class, 1);
StatusEnum statusEnum = EnumUtil.getEnumByName(StatusEnum.class, "END");
StatusEnum statusEnum = EnumUtil.getEnumByDesc(StatusEnum.class, "开始");

最后

以上就是甜甜纸鹤为你收集整理的【utils】通过枚举中的某个字段值获取枚举的EnumUtil工具类的全部内容,希望文章能够帮你解决【utils】通过枚举中的某个字段值获取枚举的EnumUtil工具类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部