news 2026/6/26 15:54:15

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

作者头像

张小明

前端开发工程师

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/6/25 11:23:06

【RUST】学习笔记-整型

打不过就加入: C今天已经40年,我用C编程也已15年。虽然网上有很多看衰C的看法,但我始终坚信C会有它顽强的生命力。 但最近看到RUST已经在Linux转正了,所以我打算加入RUST,看看它到底有何魔力。 另外也是为了水点文章&a…

作者头像 李华
网站建设 2026/6/24 20:12:57

【Open-AutoGLM vs AppAgent】:谁才是真正具备自主学习能力的AI代理?

第一章:谁才是真正具备自主学习能力的AI代理?在人工智能快速演进的当下,"自主学习"已成为衡量AI代理智能水平的核心标准。真正具备自主学习能力的AI代理,不应仅依赖预设规则或静态训练数据,而应在动态环境中…

作者头像 李华
网站建设 2026/6/24 0:51:08

Open-AutoGLM连接异常怎么办:3种高发场景+4个关键修复命令

第一章:Open-AutoGLM WiFi 连接不稳定排查在部署 Open-AutoGLM 设备时,WiFi 连接不稳定是常见问题之一,可能影响模型推理与远程调用的实时性。该问题通常由信号干扰、配置错误或驱动兼容性引起,需系统性地进行诊断与修复。检查无线…

作者头像 李华
网站建设 2026/6/26 8:52:38

Langchain-Chatchat与Jaeger分布式追踪系统集成

Langchain-Chatchat 与 Jaeger 分布式追踪集成实践 在企业级 AI 应用日益复杂的今天,一个看似简单的“提问-回答”交互背后,可能隐藏着数十个模块的协同工作:文档解析、文本切片、向量检索、上下文拼接、模型推理……当这套流程部署在本地环境…

作者头像 李华
网站建设 2026/6/25 2:00:34

账号总被盯上?Open-AutoGLM安全加固9大实操技巧,现在不做就晚了

第一章:Open-AutoGLM账号安全现状与威胁分析近年来,随着自动化大语言模型(AutoGLM)平台的广泛应用,Open-AutoGLM作为开源社区中的重要组成部分,其账号安全问题日益凸显。大量开发者依赖该平台进行模型训练、…

作者头像 李华