2026/7/15 2:43:01
网站建设
项目流程
枚举 vs 常量类的选择标准
使用枚举的情况
有限且固定的值集合
- 如:[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)(平均值、方差、范围、幅度)
- 如:星期几、月份、状态码等
需要类型安全的参数传递
需要遍历所有可能值
- 使用
values()方法获取所有枚举值 - 如:下拉菜单选项、配置类型等
配合 switch 语句使用
使用常量类的情况
单纯的键值对映射
- 如:[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) 中的错误消息
- 不需要类型安全检查的字符串或数字
配置信息或标识符
- 如:数据库表名、API 端点、环境变量名
- 值可能会动态变化
大量独立的常量
- 没有关联性或逻辑分组
- 不需要枚举的特殊方法(
values()、ordinal()等)
向后兼容性考虑
您项目中的应用
- [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)✓ 适合用常量类 - 错误消息文本,不需要枚举特性