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

枚举类三大应用场景 - -z-w-h

场景 1:状态 / 类型定义
/**

  • 作业3-场景1:枚举-状态定义 订单状态
    */
    enum OrderStatus {
    UNPAID, // 未支付
    PAID, // 已支付
    DELIVERED, // 已发货
    FINISH, // 已完成
    CANCEL // 已取消
    }

class OrderTest {
public static void main(String[] args) {
OrderStatus status = OrderStatus.PAID;
switch (status) {
case UNPAID -> System.out.println("待用户付款");
case PAID -> System.out.println("准备发货");
case DELIVERED -> System.out.println("运输中");
case FINISH -> System.out.println("交易结束");
case CANCEL -> System.out.println("订单关闭");
}
}
}

场景 2:策略模式,消除大量 if-else
/**

  • 作业3-场景2:枚举策略模式 替代if/else 四则运算
    */
    interface Calculate {
    int calc(int a, int b);
    }

enum Operator implements Calculate {
ADD("+") {
@Override
public int calc(int a, int b) {
return a + b;
}
},
SUB("-") {
@Override
public int calc(int a, int b) {
return a - b;
}
},
MUL("*") {
@Override
public int calc(int a, int b) {
return a * b;
}
},
DIV("/") {
@Override
public int calc(int a, int b) {
return a / b;
}
};

private final String symbol;
Operator(String symbol) {
this.symbol = symbol;
}
public String getSymbol() {
return symbol;
}
}

class StrategyTest {
public static void main(String[] args) {
int a = 10, b = 5;
for (Operator op : Operator.values()) {
int res = op.calc(a, b);
System.out.printf("%d %s %d = %d%n", a, op.getSymbol(), b, res);
}
}
}

场景 3:后端统一返回码枚举
/**

  • 作业3-场景3:枚举统一接口返回码(后端开发必备)
    */
    enum ResultCode {
    SUCCESS(200, "操作成功"),
    FAIL(500, "服务器异常"),
    PARAM_ERROR(400, "参数非法"),
    UNAUTHORIZED(401, "未登录"),
    FORBIDDEN(403, "权限不足");

    private final int code;
    private final String msg;

    ResultCode(int code, String msg) {
    this.code = code;
    this.msg = msg;
    }

    // getter
    public int getCode() { return code; }
    public String getMsg() { return msg; }
    }

// 模拟接口返回实体
class Result {
private int code;
private String msg;
private T data;

public static Result ok(T data) {
Result r = new Result<>();
r.code = ResultCode.SUCCESS.getCode();
r.msg = ResultCode.SUCCESS.getMsg();
r.data = data;
return r;
}

public static Result fail(ResultCode code) {
Result r = new Result<>();
r.code = code.getCode();
r.msg = code.getMsg();
return r;
}

@Override
public String toString() {
return "Result{code=" + code + ", msg='" + msg + "', data=" + data + "}";
}
}

class ApiTest {
public static void main(String[] args) {
// 成功返回
System.out.println(Result.ok("用户数据"));
// 参数错误返回
System.out.println(Result.fail(ResultCode.PARAM_ERROR));
}
}

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

相关文章:

  • 如何安装和配置Google Translate Mac客户端:5分钟快速上手教程 [特殊字符]
  • 终极指南:用YOLOv9快速构建高性能目标检测系统
  • 从零到一:Docker化Magento开发环境的革命性实践
  • 3步解锁免费LLM API宝藏:开发者必知的终极资源指南
  • express-winston性能优化:减少日志开销的7个最佳实践
  • 2026苏州防水补漏维修团队实测盘点TOP4:苏州业主房屋渗漏修缮靠谱选择 - 宅安选房屋修缮
  • winget只下载不安装
  • WebView控制完全掌握:JSBrowser中前进/后退/刷新功能的实现方法
  • 形式化方法 +《大象 Thinking in UML》 - -z-w-h
  • 5步掌握DiT扩散模型:基于Transformer的图像生成终极指南
  • verb快速上手:5步学会创建第一个NURBS曲线和曲面
  • GEO获客优化推广与传统SEO、短视频搜索的差异化体验解析 - 起跑123
  • Camunda BPM平台:5个步骤快速掌握开源工作流自动化框架 [特殊字符]
  • DeepSeek Coder深度解析:让AI代码生成提升你的开发效率300%
  • 传统AI应用架构的碎片化困境与Next.js AI Chatbot的现代化统一解决方案
  • LocalAI:重新定义本地人工智能的边界,让AI回归你的掌控
  • 【observability】【evaluation01】AIMon的LlamaIndex扩展用于LLM响应评估
  • 素数 / 质数 - -z-w-h
  • 2026重庆防水补漏维修团队实测盘点TOP4:重庆业主房屋渗漏修缮靠谱选择 - 宅安选房屋修缮
  • 宁波音响改装难题终结者:乾音汽车音响旗舰店3大核心优势揭秘,路虎原厂音响升级/问界原厂音响升级,音响改装门店怎么选择 - 音响改装门店分享
  • CANN/asc-devkit asc_mul_add函数
  • 2026武汉热水器维修实测:不加热、漏水、水温异常故障排查+价格参考 - 一步到家
  • Numix图标主题完全解析:1000+高质量SVG图标的秘密
  • purl.js与AMD模块系统:终极URL解析器在不同环境中的完整使用指南 [特殊字符]
  • 【新】5p216基于Hadoop的CBA球员数据可视化分析系统的设计3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • Node.js企业级配置管理架构深度解析:多格式配置融合与分层设计指南
  • PCSX2模拟器性能优化方法论:3大架构瓶颈与5层调优策略深度解析
  • 探索Awesome Agent Skills:如何通过1000+官方技能库提升AI助手生产力
  • OpenCV —— 角点检测实战:从Harris、Shi-Tomasi到FAST的性能对比与选型指南
  • HackberryPiCM5磁吸背板应用:如何使用MagSafe配件增强便携性