news 2026/2/18 16:08:46

为啥要有枚举这个类型,定义一个类,其中定义常量不就行了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
为啥要有枚举这个类型,定义一个类,其中定义常量不就行了

枚举类型 vs 常量类

1.类型安全性

// 使用枚举 - 编译时类型检查publicenumStatus{ACTIVE,INACTIVE}voidprocessStatus(Statusstatus){}// 调用时只能传入定义的枚举值processStatus(Status.ACTIVE);// ✓ 正确processStatus("ACTIVE");// ✗ 编译错误// 使用常量类 - 运行时才能发现问题publicclassStatusConstants{publicstaticfinalStringACTIVE="ACTIVE";publicstaticfinalStringINACTIVE="INACTIVE";}voidprocessStatus(Stringstatus){}processStatus(StatusConstants.ACTIVE);// ✓processStatus("INVALID_STATUS");// ✗ 运行时错误,编译器无法检查

2.编译时保障

  • 枚举提供编译时类型检查,防止无效值传入
  • 常量类无法提供这种保障,容易传入错误的字符串或数字

3.功能丰富性

枚举天然具备以下特性:

  • values()方法获取所有枚举值
  • ordinal()获取枚举序号
  • [name()](file://D:\Desktop\ai_wei\projects\F-XA-01\code\f-xa-01-api\f-xa-01-api-pojo\src\main\java\com\aiwei\pojo\entity\ParamType.java#L33-L35) 获取枚举名称
  • 自动实现ComparableSerializable接口

4.IDE支持

  • 枚举有更好的IDE自动补全和提示
  • 可以直接跳转到枚举定义查看所有可能值

5.实际应用场景

在您的项目中,[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-L36) 枚举比常量类更适合,因为:

  • 确保传入 [dataStats](file://D:\Desktop\ai_wei\projects\F-XA-01\code\f-xa-01-api\f-xa-01-api-server\src\main\java\com\aiwei\server\service\impl\FlightDataServiceImpl.java#L175-L211) 方法的统计类型参数只能是预定义的几种类型之一
  • 配合switch语句使用更加安全和直观
  • 避免了魔法数字和字符串的使用

因此,枚举相比简单的常量类提供了更强的类型安全性和更好的开发体验。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/13 13:26:09

FaceFusion镜像内置缓存机制提升重复任务效率

FaceFusion镜像内置缓存机制提升重复任务效率在数字内容创作领域,一个常见的场景是:设计师需要为一段30秒的视频逐帧替换主角人脸,尝试不同风格参数生成多组预览效果。传统流程下,即便前后帧中的人物几乎完全相同,系统…

作者头像 李华
网站建设 2026/2/17 12:54:43

【隐私合规迫在眉睫】:Open-AutoGLM一键启用的5大应急防护机制详解

第一章:Open-AutoGLM 应急隐私保护方案概述在数据驱动的智能服务快速发展的背景下,大语言模型(LLM)面临日益严峻的隐私泄露风险。Open-AutoGLM 作为一种面向应急场景设计的隐私保护方案,旨在确保用户敏感信息在模型推理…

作者头像 李华
网站建设 2026/2/17 1:16:00

Open-AutoGLM遇上PIPL:企业必须掌握的5大合规技术要点

第一章:Open-AutoGLM 个人信息保护法适配方案在构建和部署 Open-AutoGLM 系统时,必须确保其符合《中华人民共和国个人信息保护法》(PIPL)的相关要求。该系统在设计阶段即引入数据最小化、目的限制与用户授权机制,以保障…

作者头像 李华
网站建设 2026/2/5 23:01:45

Langchain-Chatchat结合RAG技术提升回答质量

Langchain-Chatchat结合RAG技术提升回答质量 在企业知识管理日益复杂的今天,一个常见的场景是:员工需要快速查询公司内部的上百页制度文档,却不得不手动翻找、反复确认条款细节。而当他们尝试使用通用AI助手提问时,得到的回答往往…

作者头像 李华
网站建设 2026/2/18 11:37:39

用Langchain-Chatchat将PDF、Word转为可问答的知识库

用Langchain-Chatchat将PDF、Word转为可问答的知识库 在企业日常运营中,知识散落在成百上千份合同、制度文档和产品手册里,员工常常为了查一条年假政策翻遍整个共享文件夹。更糟的是,当新员工提问“我们和某供应商的付款周期是多久&#xff1…

作者头像 李华