zoukankan      html  css  js  c++  java
  • 通过code去获取他的枚举

    通过code去获取他的枚举

    在运行页面的时候发现,页面的订单状态和支付状态显示的是数字符号,我们要让他显示为文字。

    解决方案:

    1.在模板中进行判断,我们不采取这种方式

    2.在OrderStatusEnum(订单状态)和PayStatusEnum(支付状态)中设置遍历

    //订单状态
    public static OrderStatusEnum getOrderStatusEnum(Integer code){
        //values获取枚举所有内容
        for(OrderStatusEnum orderStatusEnum:OrderStatusEnum.values()){
            if(OrderStatusEnum.getCode.equals(code)){
                return orderStatusEnum
            }
        }
        return null
    }
    
    //支付状态
    public static PayStatusEnum getCode(Integer code){
        for (PayStatusEnum payStatusEnum : PayStatusEnum.values()){
            if (payStatusEnum.getCode().equals(code)){
                return payStatusEnum;
            }
        }
        return null;
    }
    

    3.自己封装通用的工具类(建议使用)

    //1.创建接口
    public interface CodeEnum<T> {
        T getCode();
    }
    
    
    //2.在OrderStatusEnum和PayStatusEnum中引用该接口
    
    
    //3.创建枚举工具类
    public class EnumUtil {
        /**
         * getEnumConstants此方法返回一个数组,该数组包含由此Class对象按其声明的顺序表示的枚举类的值,
         * 如果此Class对象不表示枚举类型,则返回null。
         * @param code
         * @param enumClass
         * @param <T>
         * @return
         */
        public static <T extends CodeEnum> T getByCode(Integer code,Class<T> enumClass){
            for (T each:enumClass.getEnumConstants()){
                if(code.equals(each.getCode())){
                    return each;
                }
            }
            return null;
        }
    }
    
    
    //4.然后在OrderDTO中加入新的属性
    //加入注解JsonIgnore,当对象转换成JSON格式,将该属性忽略
    @JsonIgnore
    public OrderStatusEnum getOrderStatusEnum(){
        return EnumUtil.getByCode(orderStatus,OrderStatusEnum.class);
    }
    @JsonIgnore
    public PayStatusEnum getPayStatusEnum(){
        return EnumUtil.getByCode(payStatus,PayStatusEnum.class);
    }
    
    
    
    //5.修改list.ftl中的代码,运行即可
    <td>${orderDTO.getOrderStatusEnum().message}</td>
    <td>${orderDTO.getPayStatusEnum().message}</td>
    

  • 相关阅读:
    TCP和UDP的一些区别: TCP提供可靠传输的机制:
    rpc和 http的区别
    熔断原理与实现Golang版
    源码解读 Golang 的 sync.Map 实现原理
    mysql底层为啥用b 树不用红黑树_MySQL索引底层数据结构
    一条sql 查询语句是如何执行的
    网络相关知识
    为什么遍历 Go map 是无序的?
    Go语言 参数传递究竟是值传递还是引用传递的问题分析
    解决goland debug 调试问题 Version of Delve is too old for this version of Go
  • 原文地址:https://www.cnblogs.com/XING-ZHI-JI-DA-XUE/p/14510112.html
Copyright © 2011-2022 走看看