枚举类型3大场景
一:
// 订单状态枚举
enum OrderStatus {
UNPAID("未支付"), PAID("已支付"), DELIVER("已发货"), FINISH("已完成");
private String desc;
OrderStatus(String desc) { this.desc = desc; }
public String getDesc() { return desc; }
}
// 测试
class EnumScene1 {
public static void main(String[] args) {
OrderStatus status = OrderStatus.PAID;
System.out.println("当前订单:" + status.getDesc());
}
}
二:
interface Calculate {
int calc(int a, int b);
}
enum Operator implements Calculate {
ADD("加"){
@Override public int calc(int a, int b) { return a+b; }
},
SUB("减"){
@Override public int calc(int a, int b) { return a-b; }
};
private String name;
Operator(String name) { this.name = name; }
}
class EnumScene2 {
public static void main(String[] args) {
System.out.println(Operator.ADD.calc(3,5)); // 8
System.out.println(Operator.SUB.calc(9,2)); //7
}
}
三:
enum ResultCode {
SUCCESS(200, "请求成功"),
FAIL(500, "服务器异常"),
PARAM_ERROR(400, "参数错误");
private int code;
private String msg;
ResultCode(int code, String msg) {
this.code = code;
this.msg = msg;
}
// getter
public int getCode() { return code; }
public String getMsg() { return msg; }
}
class EnumScene3 {
public static void main(String[] args) {
ResultCode res = ResultCode.SUCCESS;
System.out.println("code:"+res.getCode()+" msg:"+res.getMsg());
}
}
