返回enum消息

在开发的过程中我们经常使用1、2、3、等一些常量去表现一个意思但是在我们返回给前端的时候在前端就需要做很多的判断,显得很麻烦,这个时候就需要一种方法能把我们的常量变成我们想返回的消息这时就不需要在前端有过多的判断。

创建CodeEnum接口: 我们先创建一个接口让它成为你想返回消息的enum的父级

public interface CodeEnum {

    Integer getCode();
}

enum类实现该接口:

public enum LeaveStateEnum implements CodeEnum{
    APP_ONE_EXAMINE(1,"申请中,等待一级审批"),
    APP_TWOE_XAMINE(2,"申请中,等待二级审批"),
    APP_THREE_EXAMINE(3,"申请中,等待三级级审批"),
    APPLY_PASS(4,"申请通过");

    private Integer code;
    private String message;

    LeaveStateEnum(Integer code,String message){
        this.code=code;
        this.message=message;
    }
}

创建EnumUtil: 这时我们只需要创建一个方法获取运行时类来比较返回相等的对象
public class EnumUtil {

public static <T extends CodeEnum> T getByCode(Integer code, Class<T> enumClass){
    for(T each:enumClass.getEnumConstants()){
        if(each.getCode().equals(code)){
            return each;
        }
    }
    return null;
}

}

在返回给前端的vo对象: 直接调用

@Data
public class StaffLeaveDTO {
    /* 请假单(主键). */
    private String leaveId;

    /* 请假人信息. */
    private  UserDTO userDTO;

    /* 请假条类型. */
    private Integer leaveType;

    /* 开始时间. */
    private Date startTime;

    /* 结束时间. */
    private Date endTime;

    /* 请假时长. */
    private Integer leaveDuration;

    /*请假原因. */
    private String leaveReason;

    /* 请假状态. */
    private Integer leaveState;

    public LeaveStateEnum getLeaveStateEnum(){
        return EnumUtil.getByCode(leaveState, LeaveStateEnum.class);
    }

    public LeaveTypeEnum getLeaveTypeEnum(){
        return EnumUtil.getByCode(leaveType, LeaveTypeEnum.class);
    }
}

返回给前端后我们只需要获取对象调用getLeaveStateEnum().getMessage().就可以获取常量对应的消息了!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值