精华内容
下载资源
问答
  • 获取枚举类型中code对应的desc

    千次阅读 2020-08-19 23:20:31
    一个订单有订单状态和支付状态,用数字来表示状态信息(采用枚举类型来对应储存,采用code和message),但是在前端展示一个订单信息时需要看见状态数字对应的信息,也就是枚举中的message,并不需要展示code。...

    一个订单有订单状态和支付状态,用数字来表示状态信息(采用枚举类型来对应储存,采用code和message),但是在前端展示一个订单信息时需要看见状态数字对应的信息,也就是枚举中的message,并不需要展示code。
     按照以前的思路,我可以采用循环判断的方式,如果传到前端的实体类中状态为存在的code,那么就将相关字段手动改为对应message。这有很大的缺点,如果状态有很多,那么转换起来非常麻烦。

    有一种方便的做法,通过反射到枚举对象:

    定义一个CodeEnum接口,所有要反射得到message的枚举类都要implements 实现这个接口

    public interface CodeEnum {
        Integer getCode();
    }

    枚举类这样写

    @Getter
    public enum PaymentTypeEnum implements CodeEnum{
        PAY_ONLINE(1, "在线支付");
        private Integer code;
        private String message;
     
        PaymentTypeEnum(Integer code, String message) {
            this.code = code;
            this.message = message;
        }
    }

    Enum工具类

    public class EnumUtil {
        //返回的对象实现CodeEnum接口    
        public static <T extends CodeEnum> T getByCode(Class<T> enumClass, Integer code) {
            for (T each : enumClass.getEnumConstants()) {
                if(each.getCode()==code){
                    return each;
                }
            }
            return null;
        }
    }

    测试,使用方法

    PaymentTypeEnum paymentTypeEnum= EnumUtil.getByCode(PaymentTypeEnum.class,1);
    String message=paymentTypeEnum.getMessage();

     

    展开全文
  • public enum SchoolAssignmentType { 课次作业(1, “课次作业”), ...Integer code; String desc; public Integer getCode() { return this.code; } public String getDesc() { return this.desc; } ...

    public enum SchoolAssignmentType {
    课次作业(1, “课次作业”),
    班级作业(2, “班级作业”);

    Integer code;
    String desc;
    
    public Integer getCode() {
        return this.code;
    }
    
    public String getDesc() {
        return this.desc;
    }
    
    private SchoolAssignmentType(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }
    

    /**陈军波写的,他喜欢封装东西,用新东西
    **/
    public static SchoolAssignmentType getByCode(Integer code) {
    SchoolAssignmentType[] var1 = values();
    int var2 = var1.length;

        for(int var3 = 0; var3 < var2; ++var3) {
            SchoolAssignmentType st = var1[var3];
            if (st.getCode().equals(code)) {
                return st;
            }
        }
    
        return null;
    }
    

    }

    展开全文
  • jsp页面用el表达式获取枚举code

    千次阅读 2015-03-20 18:36:35
    jsp页面用el表达式获取枚举code "/> otherType="${D_BUSINESS.code}
    jsp页面用el表达式获取枚举的code
    
    <c:set var="D_BUSINESS" value="<%=DeptEnum.D_BUSINESS%>"/>

    otherType="${D_BUSINESS.code}"
    展开全文
  • 通过反射使用code获取枚举的name 方法: 1、建立一个枚举 2、提供方法通过反射得到类的方法调用判断 3、调用参数 传入枚举类 和需要查询的code /** * 通过枚举的code 得到枚举的name * class 枚举 ...

    现象:
    通过反射使用code获取枚举的name

    方法:
    1、建立一个枚举
    在这里插入图片描述
    2、提供方法通过反射得到类的方法调用判断
    在这里插入图片描述
    3、调用参数 传入枚举类 和需要查询的code
    在这里插入图片描述

    /**
    	* 通过枚举的code 得到枚举的name
    	 * class 枚举
    	 * code:传入code值   通过code 得到枚举的name
     */
    public static void getEnumValue(Class clazz,Object code){
    	//返回枚举类的元素,或null如果此Class对象不表示枚举类型。
    	Object[] enumConstants = clazz.getEnumConstants();
    	try {
    		for (Object object : enumConstants) {
    			System.out.println(object);
    			
    			//获得对象所声明的公开方法 参数标识方法名称
    			Method codeMethod = clazz.getMethod("getCode");
    			Method nameMethod = clazz.getMethod("getName");
    			System.out.println(codeMethod);
    			
    			//执行对象的目标方法
    			Object invoke = codeMethod.invoke(object);
    			System.out.println(invoke);
    			
    			if(code.equals(codeMethod.invoke(object))){
    				System.out.println("找到了:"+nameMethod.invoke(object));
    			}
    		}
    	} catch (Exception e) {
    		e.printStackTrace();
    	} 
    }
    
    展开全文
  • 根据code获取枚举类的Values(Name)值 最近,项目上有个需求,已经获取了别人定义的枚举类的code值,需要获取该枚举类的Values值(修改别人的代码可能牵一发而动全身),参考别人的方法,使用反射编写一个工具类,...
  • ♣通过枚举实现状态、描述的的定义 @Getter public enum OrderStatusEnum{ NEW(0, "新订单"), FINISHED(1, "完结"), CANCEL(2, "已取消"), ; private Integer code; private String ...
  • 1、定义一个CodeEnum接口,供每个枚举实现,以便重写共用... Integer getCode(); String getMsg(); } 2、枚举类实现CodeEnum接口,并重写方法 import com.chuai.ecshop.utils.enumUtils.CodeEnum; import lombo...
  • java常用的枚举方法有values和valueof valueOf方法会把一个String类型的名称...values是获取所有枚举项 package HtppClient1.EnumUtil; import java.lang.reflect.Field; import java.lang.reflect.Invoc...
  • java反射获取枚举所有的值

    万次阅读 2019-05-09 15:16:40
    由于项目的发展,枚举也是越来越多,为了方便前端直接取值,而不是每一次增加枚举给说一次,就写了一个根据枚举包名+类名获取所有的枚举值的接口;具体方法如下: ... * 根据枚举的字符串获取枚举的值...
  • java获取枚举类的所有属性

    千次阅读 2020-11-19 10:48:11
    :通过取项目某个包路径下的所有枚举类来获取该类的所有属性 直接上java代码: package com.xxx.common.ennum; import cn.hutool.core.util.ClassUtil; import java.lang.reflect.Method; import java.util....
  • import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @author: july ... * @description: 获取枚举实例 */ public class Enum...
  • @Getter @NoArgsConstructor public enum TaskRecordTypeEnum { STOPTASK(0,"禁用任务"), STARTTASK(1,"启用任务"); private int code;... TaskRecordTypeEnum(int code, ... this.code = code; this.desc = d
  • 获取枚举所有值的骚操作static

    千次阅读 2020-08-01 11:04:34
    public enum ProductStatus { ... approval("approval","审批"), to_be_activation("to_be_activation","待激活"), to_be_effective("to_be_effective","待启用"), valid("valid","有效"), i
  • 定义一个枚举ActionEnum类,包含两个属性code和desc,可以通过code获取desc. descOfCode(String code) 方法采用java8新特性stream来实现。 /** * 通过code获取desc * * @param code code * @return desc */ ...
  • 根据参数获取枚举中的值

    千次阅读 2018-06-01 12:00:27
    public class EnumGetValueUtil { private static Logger logger = LoggerFactory.getLogger... /** *  * @param clazz * @param getTypeCodeMethodName 传入的typeCode的get方法 * @param type...
  • java的枚举enum根据code获取name等

    千次阅读 2019-11-14 13:09:30
    * 获取角色名称 * @param role * @return */ public static String getNameByRole(Integer role){ for (Roles value : Roles.values()) { if(value.getRole().equals(role)){ return value.getName(); } }...
  • 1、定义一个CodeEnum接口,供每个枚举实现,以便重写共用方法 public interface CodeEnum { Object getValue(); } 2、枚举类实现CodeEnum接口,并重写方法 import com.chuai.ecshop.utils.enumUtils.CodeEnum; ...
  • 枚举根据传入的code获取value package com.example.demo.enums; public enum NumberEnum { ONE("1", "one"), TWO("2", "two"), THREE("3", "three"), FORE("4", "fore"), FIVE("5", "five"), ; private ...
  • element 表格获取 HTML部分 <el-table-column prop="state" label="团队状态" align="center" :formatter="statetype"> </el-table-column> js部分 teamStates(){ ...
  • 根据枚举的value获取枚举

    千次阅读 2018-09-18 15:35:56
     根据枚举的value获取枚举 二、代码   /// &lt;summary&gt; /// 根据枚举的value获取枚举 /// &lt;/summary&gt; /// &lt;param name="enumType"&gt;枚举的类型,示例:...
  • java反射获取枚举

    万次阅读 2018-05-06 19:35:39
    所以如果要获取枚举常量中的值,首先需要使用class的getEnumConstants()方法获取枚举中所有的枚举常量,然后使用类中对应的方法,得到常量中包含字段的值。代码如下:1.枚举类代码示例package ...
  • 根据名称获取枚举

    千次阅读 2014-05-08 23:50:14
    根据名称获取枚举值 [code="java"] public static T getEnum(Class clazz, String name){ T[] enumConstants = clazz.getEnumConstants(); for(T _enum : enumConstants){ if(_enum.toString...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,269
精华内容 22,107
关键字:

获取枚举中所有code