1、枚举
/**
* @author 啵啵
* @date 2022/5/20 9:39
*/
@Getter
public enum IotProductIdEnum implements CodeEnum {
VINBEP(1, "Vi-NB-EP"),
VINBJJ(4, "Vi-NB-JJ"),
VINBDT(5, "Vi-NB-DT"),
VIZIDT(17, "Vi-ZI-DT"),
VILODT(19, "Vi-LO-DT"),
VINBSY(22, "Vi-NB-SY");
private Integer code;
private String value;
IotProductIdEnum(Integer code, String value) {
this.code = code;
this.value = value;
}
}
2、工具类
public class EnumUtil {
/** * 判断数值是否属于枚举类的值 * @param clzz 枚举类 Enum * @param code * @author bobo * @return */ public static boolean isInclude(Class<?> clzz,Integer code) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException { boolean include = false; // 判断当前类是否是枚举类型 if(clzz.isEnum()){ Object[] enumConstants = clzz.getEnumConstants(); // 获得反射类里的 getCode方法 Method getCode = clzz.getMethod("getCode"); // 遍历枚举中的值 for (Object enumConstant:enumConstants){ if (getCode.invoke(enumConstant).equals(code)) { include = true; break; } } } return include; }
}
3、方法中怎么用
3.1 用枚举之前的代码 又臭又长
if (deviceIotVO.getIotProductId()==1||deviceIotVO.getIotProductId()==4|| deviceIotVO.getIotProductId()==5||deviceIotVO.getIotProductId()==17||deviceIotVO.getIotProductId()==19|| deviceIotVO.getIotProductId()==22){
3.2 用枚举之后的代码 突出一个优雅
if (EnumUtil.isInclude(IotProductIdEnum.class,devictVO.getProductId().intValue())){
devictVO.setIsCusize(1);
}