当前位置: 首页 > news >正文

枚举类型应用场景(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("支付宝") {

@Override

public String processPayment(double amount) {

return "调用支付宝接口,完成支付:" + amount + "元";

}

},

WECHAT_PAY("微信支付") {

@Override

public String processPayment(double amount) {

return "调用微信支付接口,完成支付:" + amount + "元";

}

},

UNION_PAY("银行卡支付") {

@Override

public 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

http://www.jsqmd.com/news/674386/

相关文章:

  • AI漫剧软件2026推荐,多风格漫剧快速生成
  • ADS8684/ADS8688驱动避坑指南:从SPI通信异常到通道配置的那些“坑”
  • 考虑极端天气线路脆弱性的配电网分布式电源配置优化模型【IEEE33节点】(Matlab代码实现)
  • FM20chs.DLL文件丢失怎么办? 免费下载方法分享
  • 丝杆升降机同步运行要注意什么?
  • VibeVoice实时语音合成体验:一键部署,感受300ms超低延迟的AI对话
  • 基于深度学习的YOLOv5的电梯内电动车检测与报警系统 电梯报警系统 小区电梯异常行为检测
  • 用户级线程和内核级线程的隐藏陷阱:为什么你的高并发应用还是卡?
  • Semidrive基线本地化部署工具:一键式企业级部署解决方案
  • DDL急救包!论文AIGC检测飘红?实测10款专业降AI工具,教你一步到位降至安全线
  • Python基础:字符串的切片操作(含正向反向索引)
  • 别再只用def了!Python里lambda匿名函数的5个实战场景(附代码)
  • **发散创新:基于策略模式的权限管理系统设计与实现**在现代软件系统中
  • Wakefern EDI 对接指南:食品零售供应链的数字化合规路径
  • 基于深度学习的yolo野猪检测与预警系统 野生动物识别系统
  • 终极MASA全家桶汉化包:3分钟解决Minecraft模组英文界面困扰的完整指南
  • gprMax三维建模进阶:用Paraview炫酷可视化你的随机介质雷达模拟结果
  • PMON还是昆仑固件?给龙芯3A/2K1000装中标麒麟前,你必须搞清楚的U盘格式化选择
  • 别再死记硬背了!用Unity Configurable Joint做个物理钟摆,5分钟搞懂Motion和Limit
  • Dify车载问答系统开发全链路拆解:从语音唤醒适配到车规级响应优化的7大关键决策点
  • MIL-101(Cr)@Fe₃O₄ NPs,MIL-101(Cr)修饰四氧化三铁纳米颗粒,化学结构特点
  • 中国罗茨风机行业品牌排名研究:回转鼓风机质量排名
  • 3个颠覆性技巧:用UltraStar Deluxe打造专业级家庭卡拉OK系统
  • 【数据集】全国各地区农作物总播种面积及粮食作物播种面积(2001-2022年)
  • 从养虾到养马:AI Agent 赛道正在经历一场“物种迁徙“
  • 别再只会调库了!手把手教你用STM32F103C8T6的TIM4和PB6引脚,从寄存器层面理解PWM控制舵机
  • 期货反向跟单: 千万不要教小白单一技术。
  • 基于深度学习detr算法的工程车辆识别 yolo智慧工地车辆检测 工程车辆装备识别 高空无人机工地巡检 挖掘机识别 铲车识别
  • mgmtapi.dll文件丢失找不到怎么办?免费下载方法分享
  • 黑苹果安装终极指南:10个步骤打造完美macOS体验