常量类的枚举

来源:8-4 创建订单-状态枚举与自测

weixin_慕少5379513

2023-02-11 21:30:56

public static OrderStatusEnum codeOf(int code) throws MallExeception {
    for (OrderStatusEnum orderStatusEnum : values()) {
        if (orderStatusEnum.getCode() == code) {
            return orderStatusEnum;
        }
    }
    throw new MallExeception(ExceptionEnum.NO_ENUM);
}

为啥这段的for是遍历,values是什么来的?

还有这个为什么是枚举类而不是接口,啥时候定义为枚举类,啥时候定义为接口?

相关截图:

https://img.mukewang.com/climg/63e7988b0991563612351182.jpg

写回答

1回答

好帮手慕小小

2023-02-12

同学你好,枚举的values()方法用来将枚举类转变为枚举类型的数组,故此处使用增强for循环来进行遍历。增强for循环的格式:

for(元素数据类型 变量 : 数组或者Collection集合) {
        //使用变量即可,该变量就是数据或集合中的元素
}

在实际开发中我们会遇到一些状态表示的场景,此时推荐使用枚举。举例:订单的状态包括未付款、已付款、已发货和确认收货,如果使用0表示未付款,1表示已付款,2表示已发货,3表示确认收货,使用枚举定义可读性好更加—目了然。

祝学习愉快~

0

0 学习 · 9886 问题

查看课程