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

枚举 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) ✓ 适合用常量类 - 错误消息文本,不需要枚举特性
相关推荐
Leinwin1 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
薛定谔的悦1 小时前
MQTT通信协议业务层实现的完整开发流程
java·后端·mqtt·struts
enjoy嚣士1 小时前
springboot之Exel工具类
java·spring boot·后端·easyexcel·excel工具类
罗超驿2 小时前
独立实现双向链表_LinkedList
java·数据结构·链表·linkedlist
盐水冰3 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
凸头3 小时前
CompletableFuture 与 Future 对比与实战示例
java·开发语言
wuqingshun3141593 小时前
线程安全需要保证几个基本特征
java·开发语言·jvm
努力也学不会java3 小时前
【缓存算法】一篇文章带你彻底搞懂面试高频题LRU/LFU
java·数据结构·人工智能·算法·缓存·面试
攒了一袋星辰3 小时前
高并发强一致性顺序号生成系统 -- SequenceGenerator
java·数据库·mysql
小涛不学习3 小时前
Spring Boot 详解(从入门到原理)
java·spring boot·后端