news 2026/7/16 18:04:37

enum枚举笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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,要进行多个判断,在枚举类里面写就好。

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

AI建站工具哪个好?小微企业主必看的选型标准与对比指南

面对市面上五花八门的建站工具,很多老板都犯了选择困难症。这个说AI智能,那个说模板丰富,还有说零代码的,到底哪个才适合我的小公司?选工具其实没那么复杂。与其听各种宣传,不如掌握一套通用的筛选标准。本…

作者头像 李华
网站建设 2026/7/16 18:00:36

JSONPlaceholder——零配置REST API模拟利器,前端开发者的效率加速器

1. JSONPlaceholder是什么?为什么前端开发者需要它?如果你是一名前端开发者,肯定遇到过这样的场景:页面布局和交互逻辑都写好了,但后端接口还没准备好,只能干等着。或者更糟——你写了一大堆静态JSON数据来…

作者头像 李华
网站建设 2026/7/16 17:57:25

PyTorch Serving 架构设计:TorchServe 的坑与替代方案

PyTorch Serving 架构设计:TorchServe 的坑与替代方案 一、个性化深度引言 TorchServe 部署的模型在压测 500 QPS 时表现正常,但生产环境跑到第 7 天突然内存溢出。原因是 TorchServe 的内部默认不限制请求队列大小,低负载时看起来一切正常&a…

作者头像 李华
网站建设 2026/7/16 17:54:01

TCAS监控与日志:实现认证服务的可观测性终极指南

TCAS监控与日志:实现认证服务的可观测性终极指南 【免费下载链接】tcas trust cluster attestation server 项目地址: https://gitcode.com/openeuler/tcas 前往项目官网免费下载:https://ar.openeuler.org/ar/ 在当今云原生时代,TCA…

作者头像 李华