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

枚举 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) ✓ 适合用常量类 - 错误消息文本,不需要枚举特性
相关推荐
带刺的坐椅2 分钟前
SolonCode(编码智能体)支持鸿蒙 PC
java·web·ai编程·harmonyos·soloncode·鸿蒙 pc
程序员二叉2 分钟前
【JVM】类加载全过程&双亲委派机制深度解析
java·jvm·面试
开发者联盟league4 分钟前
使用jenkins pipeline将项目打包运行在k8s上报错kubectl: Permission denied
java·kubernetes·jenkins
ch.ju8 分钟前
Java程序设计(第3版)第四章——继承的特点
java·开发语言
Chase_______19 分钟前
【Java杂项】Arrays.asList、List.of 和 new ArrayList:集合可变性避坑
java·windows·list
发际线向北20 分钟前
0x07 深入了解JVM虚拟机(JVM异常处理)
java
Seven9720 分钟前
每个线程只管自己的变量,性能却不如单线程?问题出在缓存行
java
2601_9618451523 分钟前
2026四级作文预测题|英语四级写作押题+提纲PDF
java·c语言·数据库·c++·python·pdf·php
用户5313973181729 分钟前
「踩坑实录」原来的SQL索引自动优化失败了,线上数据库差点被打挂
java·后端
SimonKing34 分钟前
线程池面试被问到怕?看完这篇让他当场沉默
java·后端·程序员