• 通过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>
    

  • 相关阅读:
    LevelDB的源码阅读(二) Open操作
    LevelDB的源码阅读(一)
    Linux上leveldb的安装和使用
    Linux下安装jdk8的详细步骤
    Linux下用ls和du命令查看文件以及文件夹大小
    pytorch实现VAE
    Caffe实现VAE
    pytorch实现DCGAN、pix2pix、DiscoGAN、CycleGAN、BEGAN以及VAE
    PyTorch教程之Training a classifier
    PyTorch教程之Neural Networks
  • 原文地址:https://www.cnblogs.com/XING-ZHI-JI-DA-XUE/p/14510112.html
Copyright © 2020-2023  润新知