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

enum枚举笔记


枚举算是比较基础的知识了,但是实际理解的还不够,记录下。
每个枚举对象相当于一个构造器。

枚举基础知识

ordinal()# 自带方法,返回下标默认从0开始,这个方法是final方法

name()# 自带方法,返回对应字面值,这个方法也是final方法
name()toString()返回的结果是一样。

枚举属性定义需要用public方法,否则外面的类看不到。

enumQRZT{CONFIRM("1","确认",false),UNCONFIRM("2","未确认",true);privateStringcode;privateStringname;privatebooleandefaultFlag;privateQRZT(Stringcode,Stringname,booleandefaultFlag){this.code=code;this.name=name;this.defaultFlag=defaultFlag;}}

name和name()是一个意思吗?

输入.自动带出方法时,带出name和name()方法,真是怪了,愣了一下下。

想了下才明白,name()是自带的方法,返回的是字面值。
name本身是没有的,属于自定义属性,需要构造了才有。

枚举的遍历和匹配

匹配代码:

CustomEnumcustomEnum=Arrays.stream(CustomEnum.values()).filter(t->t.name().equals(type.toUpperCase())).findFirst().orElse(null);log.info("customEnum={}",customEnum);

枚举的valueof如果找不到直接会抛异常

如果找不到直接就会报错:

Stringtype="CCC";CustomEnumcustomEnum=CustomEnum.valueOf(type);

这个值如果匹配不到直接就会抛异常,后面不用再加if(nullcustomEnum)==。

所以,如何判断枚举中是否包含某个值呢?
valueOf()其实就是可以的,或者遍历也可以,如果想要优雅,也可以封装个工具类。

枚举如何获取一个对象

由上面来看就比较简单了。
1、如果知道名字直接写出来,如 DemoEnum.AAA。
2、valueOf(名字)方法,如 DemoEnum.valueOf(BBB)。
3、values[下标],如 DemoEnum.values[1]。

枚举类里写静态方法进行判断(小技巧)

一般枚举类都是用于定义,实际也可以写个判断方法,例如入参是String,要进行多个判断,在枚举类里面写就好。

http://www.cnnetsun.cn/news/3433298.html

相关文章:

  • Efficient-DLM-8B环境配置与优化:transformers库高效部署指南
  • AI建站工具哪个好?小微企业主必看的选型标准与对比指南
  • JSONPlaceholder——零配置REST API模拟利器,前端开发者的效率加速器
  • FlareProx部署完全手册:从零开始配置Cloudflare账户到批量部署代理的终极指南
  • PyTorch Serving 架构设计:TorchServe 的坑与替代方案
  • TCAS监控与日志:实现认证服务的可观测性终极指南
  • Figma AI权限管理暗礁预警:企业级部署中92%团队漏掉的3个合规断点,审计前必须修复
  • 【Springboot毕设全套源码+文档】基于Java的停车场管理系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • PyGPSClient完全指南:一站式掌握GNSS协议解析与可视化工具
  • 从0到1部署SingGuard-2b:硬件要求、环境配置与性能优化全攻略
  • 黑客技术入门必知,这些法律红线千万别碰
  • MiniCPM5-1B-Agentic-Tooluse-GGUF vs 其他工具调用模型:关键指标横向对比
  • 米哈游游戏终极扫码登录器:一键搞定四大热门游戏登录难题
  • 第【76】期-- 通信问题的cvx教程之进阶篇【八】-- 基于RSMA的ISAC波束成形优化--SDR求解+连续凸近似SCA --MATLAB完整代码
  • 【一线大厂Agent平台技术栈解密】:字节、阿里、微软内部框架选型逻辑首次披露,附可复用的评估矩阵表
  • 多层双向GRU:解决NLP一词多义问题的先进架构解析
  • 基于ChatGPT API的智能阅读助手开发实战:提示词工程与上下文管理
  • 3步解锁WeMod隐藏功能:免费增强你的游戏修改器体验
  • 《Nature Medicine》发布AI模型COMPASS——直接预测癌症及治疗方案下的免疫治疗结果
  • Claude处理SQL、JSON、CSV、PDF表格数据的能力对比报告(附12项基准测试原始数据)
  • 现在不学DeepSeek,3个月后将错过国产大模型生态红利窗口期:2024Q3最新API定价策略与迁移路线图
  • Solidity 跨链消息传递协议实现:从 LayerZero 到 Wormhole 的消息验证与重放防护
  • SpotifyLyrics项目架构解析:从歌词获取到UI显示的全流程
  • 如何扩展SpotifyLyrics:添加新的歌词服务API教程
  • 3分钟实现Discord音乐状态同步:网易云音乐与QQ音乐完美方案
  • 联想thinkpad笔记本电脑的蓝牙连接功能不是很好,连接了蓝牙耳机的连接,但是声音输出找不到蓝牙耳机,这是什么原因,是bug吗?如何解决?
  • 终极教程:如何使用lv_port_pc_visual_studio开发嵌入式GUI应用
  • 2026四大主流建站平台对比评测:原来差别不只是在价格!
  • 《物理魔法使马修》中的教育理念:因材施教与独立人格培养
  • 【电脑自动操作 AI 智能体】 OpenClaw,Win11 路径 / 权限常见故障汇总(含安装包)