枚举类型应用场景(Java)

张开发
2026/4/21 2:46:14 15 分钟阅读

分享文章

枚举类型应用场景(Java)
场景1状态/类型定义// 订单状态枚举定义public class OrderStatusDemo {// 定义枚举类型enum OrderStatus {PENDING(1, 待支付),PAID(2, 已支付),SHIPPED(3, 已发货),COMPLETED(4, 已完成),CANCELED(5, 已取消);// 枚举成员属性private final int code;private final String description;// 枚举构造方法OrderStatus(int code, String description) {this.code code;this.description description;}public int getCode() {return code;}public String getDescription() {return description;}}// 主方法运行测试public static void main(String[] args) {// 直接输出枚举信息System.out.println(场景1状态/类型定义测试);System.out.println(当前订单状态 OrderStatus.PAID);System.out.println(状态编码 OrderStatus.PAID.getCode());System.out.println(状态描述 OrderStatus.PAID.getDescription());}运行输出场景1状态/类型定义测试当前订单状态PAID状态编码2状态描述已支付场景2策略模式替换大量if/else// 策略模式枚举示例public class PaymentStrategyDemo {// 定义支付策略枚举enum PaymentType {ALIPAY(支付宝) {Overridepublic String processPayment(double amount) {return 调用支付宝接口完成支付 amount 元;}},WECHAT_PAY(微信支付) {Overridepublic String processPayment(double amount) {return 调用微信支付接口完成支付 amount 元;}},UNION_PAY(银行卡支付) {Overridepublic String processPayment(double amount) {return 调用银联接口完成支付 amount 元;}};private final String name;// 抽象方法每个枚举实现自己的逻辑public abstract String processPayment(double amount);PaymentType(String name) {this.name name;}public String getName() {return name;}}// 主方法运行测试public static void main(String[] args) {System.out.println(\n场景2策略模式测试);// 不需要if/else直接调用对应策略逻辑PaymentType wechat PaymentType.WECHAT_PAY;System.out.println(wechat.getName() wechat.processPayment(199.9));PaymentType alipay PaymentType.ALIPAY;System.out.println(alipay.getName() alipay.processPayment(88.5));}运行结果场景2策略模式测试微信支付调用微信支付接口完成支付199.9元支付宝调用支付宝接口完成支付88.5元场景3统一返回码后端接口必备// 统一接口返回码枚举public class ResponseCodeDemo {// 定义返回码枚举enum ResponseCode {SUCCESS(200, 操作成功),BAD_REQUEST(400, 请求参数错误),UNAUTHORIZED(401, 用户未登录),FORBIDDEN(403, 无权限访问),NOT_FOUND(404, 请求资源不存在),INTERNAL_ERROR(500, 服务器内部错误);private final int code;private final String message;ResponseCode(int code, String message) {this.code code;this.message message;}public int getCode() {return code;}public String getMessage() {return message;}}// 封装后端统一返回结果的方法public static String buildResponse(ResponseCode code, Object data) {return String.format(返回码%d提示信息%s返回数据%s,code.getCode(), code.getMessage(), data);}// 主方法运行测试public static void main(String[] args) {System.out.println(\n场景3统一返回码测试);// 成功响应System.out.println(buildResponse(ResponseCode.SUCCESS, {\userId\:1001,\name\:\张三\}));// 未登录响应System.out.println(buildResponse(ResponseCode.UNAUTHORIZED, null));}}运行输出场景3统一返回码测试返回码200提示信息操作成功返回数据{userId:1001,name:张三}返回码401提示信息用户未登录返回数据null

更多文章