java枚举的多态性

枚举类本身不能被继承,所以我们需要通过实现接口的方式实现枚举的多态性

首先创建一个base接口

public interface BaseEnum {

    /**
     * 状态码
     *
     * @return code
     */
    int getCode();

    /**
     * 返回信息
     *
     * @return msg
     */
    String getMsg();

}

创建枚举类实现此接口

1.

public enum BasicEnum implements BaseEnum {

    SUCCESS(0, "成功"),

    ERROR(999, "系统错误");

    private final int code;
    private final String msg;

    BasicEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }


    @Override
    public int getCode() {
        return this.code;
    }

    @Override
    public String getMsg() {
        return this.msg;
    }
}

2.

public enum Live2dEnum implements BaseEnum {

    //A
    LIVE_2_D_ENUM(1000, "未找到路径");


    private final int code;
    private final String msg;

    Live2dEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    @Override
    public int getCode() {
        return this.code;
    }

    @Override
    public String getMsg() {
        return this.msg;
    }
}

枚举多态的使用

例如当我们统一处理网络请求返回时

我们可以为不同业务创建不同的Enum进行返回值的传递

public static HttpResult error(BaseEnum baseEnum) {
    return new HttpResult(baseEnum.getCode(), baseEnum.getMsg());
}

@RequestMapping("/report")
public HttpResult report() {
    return HttpResult.error(BasicEnum.ERROR);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值