当前位置: 首页 > backend >正文

JAVA 枚举类的ordinal用法

假设你有一个枚举类 BusinessType:

public enum BusinessType {TYPE_A,TYPE_B,TYPE_C;
}

1、.ordinal()   返回该枚举常量的序数

     在这个例子中:BusinessType.TYPE_A.ordinal() 返回 0

      BusinessType.TYPE_B.ordinal() 返回 1

      BusinessType.TYPE_C.ordinal() 返回 2

2、values() 返回该枚举类型的所有实例的一个数组

那么你可以使用以下方式根据 ordinal 值获取对应的枚举实例:

BusinessType getTypeByOrdinal(int ordinal) {if (ordinal < 0 || ordinal >= BusinessType.values().length) {throw new IllegalArgumentException("Invalid ordinal value: " + ordinal);}return BusinessType.values()[ordinal];
}

注意事项

  • 安全性:直接依赖于 ordinal 值可能会导致问题,特别是在枚举类型的定义发生变化时(如添加、删除或重新排序枚举常量)。这种变化会改变枚举常量的 ordinal 值,可能导致潜在的错误。
  • 边界检查:确保在使用 ordinal 值之前进行边界检查,避免数组越界异常。
  • 推荐做法:通常情况下,更推荐使用枚举常量的名字或者与之关联的具体值(如通过构造函数初始化的属性)来查找枚举实例,而不是依赖于 ordinal 值。例如,可以通过名称查找枚举实例:

或者如果枚举有特定的属性,可以遍历枚举实例来匹配这些属性值。

通过上述方法,你可以根据 ordinal 值找到具体的枚举值,但请务必注意其潜在的风险并采取相应的预防措施。

http://www.xdnf.cn/news/3012.html

相关文章:

  • JavaScript中 说说你对闭包的理解?闭包使用场景?
  • Java练习8
  • GBDT算法原理及Python实现
  • 2024jxcpc D.Magic LCM (logn筛质因子)
  • 百度CarLife实现手机车机无缝互联
  • BT134-ASEMI机器人功率器件专用BT134
  • 告别碎片化!两大先进分块技术如何提升RAG的语义连贯性?
  • 【系统参数合法性校验】spring-boot-starter-validation
  • PowerBI更新后出现提示,无法正常使用,解决办法
  • JavaScript == 和 ===区别,分别在什么情况使用?
  • 角度(degrees)和弧度(radians)转换关系
  • Oracle OCP证书有效期是三年?
  • 5 个开源 MCP 服务器
  • 【MongoDB篇】MongoDB的集合操作!
  • 【angular19】入门基础教程(四):默认的css隔离作用域
  • 基于Java,SpringBoot,HTML水文水质监测预警系统设计
  • 【最新 MCP 战神手册 08】工具使用详解:实现 AI 行动
  • 动态图表 -- eg1
  • Femap许可分配和监控
  • 4月29日星期二今日早报简报微语报早读
  • 优化PCB Via Stub系列(1):一次学会利用层叠设计降低Via Stub损耗
  • 使用 Ziegler-Nichols 法进行 PID 参数整定:实践指南
  • [计算机网络]物理层
  • 力扣-数据结构-二叉树
  • 3D可视化编辑器模版
  • AimRT 从零到一:官方示例精讲 —— 四、logger示例.md
  • 信创产业贡献︱悬镜安全深度参编《2024网信自主创新调研报告》
  • 监控易一体化运维:解锁业务系统管理,助力企业运维升级
  • SOLIDWORKS广东东莞地区代理商哪个服务好?都有哪些代理商?
  • docker 部署前、后端分离项目详细步骤(从打包到部署)