枚举三大应用场景
2026/5/29 6:49:59 网站建设 项目流程

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-elseswitch-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; } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询