哪些常量用枚举,哪些用类

枚举 vs 常量类的选择标准

使用枚举的情况

  1. 有限且固定的值集合

    • 如:[StatsTypeEnum](file://D:\Desktop\ai_wei\projects\F-XA-01\code\f-xa-01-api\f-xa-01-api-common\src\main\java\com\aiwei\common\enumeration\StatsTypeEnum.java#L7-L50)(平均值、方差、范围、幅度)
    • 如:星期几、月份、状态码等
  2. 需要类型安全的参数传递

    • 避免传入非法值
    • 编译时就能发现错误
  3. 需要遍历所有可能值

    • 使用 values() 方法获取所有枚举值
    • 如:下拉菜单选项、配置类型等
  4. 配合 switch 语句使用

    • 提供更好的 IDE 支持和类型检查

使用常量类的情况

  1. 单纯的键值对映射

    • 如:[MessageConstant](file://D:\Desktop\ai_wei\projects\F-XA-01\code\f-xa-01-api\f-xa-01-api-common\src\main\java\com\aiwei\common\constant\MessageConstant.java#L5-L84) 中的错误消息
    • 不需要类型安全检查的字符串或数字
  2. 配置信息或标识符

    • 如:数据库表名、API 端点、环境变量名
    • 值可能会动态变化
  3. 大量独立的常量

    • 没有关联性或逻辑分组
    • 不需要枚举的特殊方法(values()ordinal() 等)
  4. 向后兼容性考虑

    • 已有大量代码使用字符串或数字常量
    • 不方便重构为枚举

您项目中的应用

  • [StatsTypeEnum](file://D:\Desktop\ai_wei\projects\F-XA-01\code\f-xa-01-api\f-xa-01-api-common\src\main\java\com\aiwei\common\enumeration\StatsTypeEnum.java#L7-L50) ✓ 应该用枚举 - 固定的统计类型,需要类型安全
  • [MessageConstant](file://D:\Desktop\ai_wei\projects\F-XA-01\code\f-xa-01-api\f-xa-01-api-common\src\main\java\com\aiwei\common\constant\MessageConstant.java#L5-L84) ✓ 适合用常量类 - 错误消息文本,不需要枚举特性
相关推荐
shoubepatien2 小时前
JAVA -- 09
java·开发语言
kong79069282 小时前
Java新特性-(三)程序流程控制
java·java新特性
愿你天黑有灯下雨有伞2 小时前
Spring Boot 使用FastExcel实现多级表头动态数据填充导出
java·faseexcel
阿拉斯攀登2 小时前
自定义 Spring Boot 自动配置
java·spring boot
CodeAmaz2 小时前
Spring编程式事务详解
java·数据库·spring
没有bug.的程序员2 小时前
微服务基础设施清单:必须、应该、可以、无需的四级分类指南
java·jvm·微服务·云原生·容器·架构
武子康2 小时前
Java-204 RabbitMQ Connection/Channel 工作流程:AMQP 发布消费、抓包帧结构与常见坑
java·分布式·消息队列·rabbitmq·ruby·java-activemq
郑州光合科技余经理2 小时前
海外国际版同城服务系统开发:PHP技术栈
java·大数据·开发语言·前端·人工智能·架构·php
appearappear2 小时前
Mac 上重新安装了Cursor 2.2.30,重新配置 springboot 过程记录
java·spring boot·后端