枚举类型应用场景
public class EnumHomework {
// ==========================================
// 场景 1:状态 / 类型定义(最常用)
// 用于描述订单的状态流转
// ==========================================
enum OrderStatus {
PENDING("待支付"),
PAID("已支付"),
SHIPPED("已发货"),
COMPLETED("已完成");
private final String desc;
OrderStatus(String desc) { this.desc = desc; }
public String getDesc() { return desc; }
}
// ==========================================
// 场景 2:策略模式(替换大量 if/else)
// 代替繁琐的 if (type == ADD) ... else if (type == SUB) ...
// ==========================================
enum OperationStrategy {
ADD {
@Override
public int apply(int a, int b) { return a + b; }
},
SUB {
@Override
public int apply(int a, int b) { return a - b; }
},
MUL {
@Override
public int apply(int a, int b) { return a * b; }
};
// 抽象方法,由每个枚举项自行实现
public abstract int apply(int a, int b);
}
// ==========================================
// 场景 3:统一返回码(后端接口必备)
// 前后端对接时,统一规定成功/失败的状态码和提示信息
// ==========================================
enum ResultCode {
SUCCESS(200, "操作成功"),
ERROR(500, "系统异常"),
NOT_FOUND(404, "资源未找到");
private final int code;
private final String message;
ResultCode(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() { return code; }
public String getMessage() { return message; }
}
// ==========================================
// 测试主程序
// ==========================================
public static void main(String[] args) {
System.out.println("--- 枚举应用场景测试 ---\n");
// 1. 测试状态定义
OrderStatus currentStatus = OrderStatus.PAID;
System.out.println("当前订单状态: " + currentStatus);
System.out.println("状态描述: " + currentStatus.getDesc());
// 2. 测试策略模式
int a = 10, b = 5;
System.out.println("\n策略模式计算:");
System.out.println("10 + 5 = " + OperationStrategy.ADD.apply(a, b));
System.out.println("10 * 5 = " + OperationStrategy.MUL.apply(a, b));
// 3. 测试统一返回码
System.out.println("\n统一返回码:");
ResultCode success = ResultCode.SUCCESS;
System.out.println("状态码: " + success.getCode() + ", 消息: " + success.getMessage());
ResultCode error = ResultCode.ERROR;
System.out.println("状态码: " + error.getCode() + ", 消息: " + error.getMessage());
}
}

浙公网安备 33010602011771号