枚举三大应用场景
1.状态/类型定义最常用枚举最经典的用法用来表示固定、有限的业务状态或类型比如订单状态、支付方式、用户权限等。订单状态枚举public enum OrderStatus { // 枚举实例 CREATED(1, 已创建), PAID(2, 已支付), SHIPPED(3, 已发货), COMPLETED(4, 已完成), CANCELLED(5, 已取消); private final int code; private final String desc; // 构造方法 OrderStatus(int code, String desc) { this.code code; this.desc desc; } // 状态判断逻辑 public boolean canCancel() { return this CREATED || this PAID; } // getter方法 public int getCode() { return code; } public String getDesc() { return desc; } }2.策略模式替换大量if/else用枚举实现不同分支的业务逻辑彻底告别冗长的if-else或switch-case让代码更简洁易维护。核心思路让枚举实现一个业务接口每个枚举实例重写接口方法封装自己的逻辑外部通过枚举实例直接调用即可。示例计算器策略枚举// 定义策略接口 public interface Calculator { double calculate(double a, double b); } // 枚举实现不同策略 public enum Operation implements Calculator { ADD { Override public double calculate(double a, double b) { return a b; } }, SUBTRACT { Override public double calculate(double a, double b) { return a - b; } }, MULTIPLY { Override public double calculate(double a, double b) { return a * b; } }, DIVIDE { Override public double calculate(double a, double b) { if (b 0) throw new ArithmeticException(除数不能为0); return a / b; } }; } // 使用时直接通过枚举实例调用无需if-else public class Test { public static void main(String[] args) { double result Operation.ADD.calculate(5, 3); System.out.println(result); // 输出8 } }3.统一返回码后端接口必备后端接口的响应状态码 / 错误码用枚举统一管理避免代码中硬编码数字保证前后端交互的一致性。示例响应码枚举public enum ResponseCode { // 成功 SUCCESS(200, 操作成功), // 客户端错误 PARAM_ERROR(400, 请求参数错误), UNAUTHORIZED(401, 未登录请先登录), FORBIDDEN(403, 无访问权限), NOT_FOUND(404, 资源不存在), // 服务端错误 SERVER_ERROR(500, 服务器内部错误); private final int code; private final String message; ResponseCode(int code, String message) { this.code code; this.message message; } // 快速获取响应信息 public static ResponseCode getByCode(int code) { for (ResponseCode rc : values()) { if (rc.code code) { return rc; } } return null; } // getter public int getCode() { return code; } public String getMessage() { return message; } }