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

如何判断一个枚举值是否存在(Check if an Enum Value Exists in Java)

目录

    • Searching an Enum by Name
    • Searching an Enum by Value
    • Searching an Enum by Integer Value
    • Exceptions Thrown from Search Methods

Searching an Enum by Name

public enum Direction {EAST, WEST, SOUTH, NORTH;public static Direction findByName(String name) {Direction result = null;for (Direction direction : Direction.values()) {if (direction.name().equalsIgnoreCase(name)) {result = direction;break;}}return result;}
}
Direction result1 = Direction .findByName("EAST");
Direction result2 = Direction .findByName("east");
Direction result3 = Direction .findByName("East");
System.out.println(Direction.EAST == result1); // true
System.out.println(Direction.EAST == result2); // true
System.out.println(Direction.EAST == result3); // true

Searching an Enum by Value

public enum Weekday {MONDAY("Monday"), TUESDAY("Tuesday"), SUNDAY("Sunday");private final String value;Weekday(String value) {this.value = value;}public String getValue() {return value;}public static Weekday findByValue(String value) {Weekday result = null;for (Weekday day : Weekday.values()) {if (day.getValue().equalsIgnoreCase(value)) {result = day;break;}}return result;}
}
Weekday result1 = Weekday.findByValue("Monday");
System.out.println(Weekday.MONDAY == result1); // trueWeekday result2 = Weekday.findByValue("mon");
System.out.println(result2); // null

Searching an Enum by Integer Value

public enum Month {JANUARY("January", 1), FEBRUARY("February", 2), // ...DECEMBER("December", 12);private final String value;private final int code;Month(String value, int code) {this.value = value;this.code = code;}public String getValue() {return value;}public int getCode() {return code;}public static Optional<Month> findByCode(int code) {return Arrays.stream(values()).filter(month -> month.getCode() == code).findFirst();}
}
Optional<Month> result = Month.findByCode(1);
System.out.println(Month.JANUARY == result.orElseGet(() -> null)); // trueOptional<Month> result2 = Month.findByCode(0);
System.out.println(result2.orElseGet(() -> null)); // null

Exceptions Thrown from Search Methods

public enum Month {JANUARY("January", 1),FEBRUARY("February", 2),// ...DECEMBER("December", 12);private final String value;private final int code;Month(String value, int code) {this.value = value;this.code = code;}public String getValue() {return value;}public int getCode() {return code;}public static Optional<Month> findByCode(int code) {return Arrays.stream(values()).filter(month -> month.getCode() == code).findFirst();}public static Month findByValue(String value) {return Arrays.stream(values()).filter(month -> month.getValue().equalsIgnoreCase(value)).findFirst().orElseThrow(IllegalArgumentException::new);}
}
Month.findByValue("Jan");Exception in thread "main" java.lang.IllegalArgumentExceptionat java.base/java.util.Optional.orElseThrow(Optional.java:403)at javabasic.enumprac.CheckEnumValueExist$Month.findByValue(CheckEnumValueExist.java:77)at javabasic.enumprac.CheckEnumValueExist.main(CheckEnumValueExist.java:85)

-----------------------------------------------------------------------------读书笔记摘自 文章:Check if an Enum Value Exists in Java

相关文章:

如何判断一个枚举值是否存在(Check if an Enum Value Exists in Java)

目录 Searching an Enum by NameSearching an Enum by ValueSearching an Enum by Integer ValueExceptions Thrown from Search Methods Searching an Enum by Name public enum Direction {EAST, WEST, SOUTH, NORTH;public static Direction findByName(String name) {Dire…...

网工内推 | 网络安全工程师,最高15K,有高温补贴

01 超圣信华 招聘岗位&#xff1a;网络安全工程师 职责描述&#xff1a; 1. 负责网络安全产品的售前沟通交流、现状调研、方案设计、产品测试、产品选型和招投标等工作。 2. 负责网络安全集成项目的实施管理、项目交付文档编制以及项目验收等工作。 3. 负责网络安全产品的售后…...

Android—ADB命令

文章目录 ADB常用命令 ADB常用命令 ADB常用命令如下&#xff1a; 方法描述adb help查看ADB命令帮助adb devices查看Android设备及端口号adb connect连接Android设备adb start-server开启服务adb kill-server关闭服务adb install ***.apk安装Android应用adb install -r ***.ap…...

音视频知识:MPEG-4、H264、MP4、AAC之间的关系

MPEG-4 一种编码标准。是国际标准化组织 (ISO) 主要针对消费类应用&#xff0c;已经针对运动图像压缩定义的标准。MPEG&#xff08;Moving Picture Experts Group&#xff09;标准包括 MPEG1、MPEG2与 MPEG4。 MPEG-4标准目前分为27个部分&#xff0c;统称为ISO/IEC14496国际标…...

智能门锁的无线通讯协议有哪些?主要特点是什么?

智能门锁的无线通讯协议主要有以下几种&#xff1a; Wi-Fi&#xff1a;Wi-Fi是一种基于无线局域网的无线通信协议&#xff0c;可以快速传输数据&#xff0c;并支持互联网连接。 ZigBee&#xff1a;ZigBee是一种低功耗、低成本的无线通信协议&#xff0c;适用于大量传感器和设…...

机器学习——异常检测

异常点检测(Outlier detection)&#xff0c;⼜称为离群点检测&#xff0c;是找出与预期对象的⾏为差异较⼤的对象的⼀个检测过程。这些被检测出的对象被称为异常点或者离群点。异常点&#xff08;outlier&#xff09;是⼀个数据对象&#xff0c;它明显不同于其他的数据对象。异…...

小研究 - 一种复杂微服务系统异常行为分析与定位算法(一)

针对极端学生化偏差&#xff08;&#xff25;&#xff58;&#xff54;&#xff52;&#xff45;&#xff4d;&#xff45; &#xff33;&#xff54;&#xff55;&#xff44;&#xff45;&#xff4e;&#xff54;&#xff49;&#xff5a;&#xff45;&#xff44; &#…...

代码版本管理工具 git

1. 去B站看视频学习&#xff0c;只看前39集&#xff1a; 01-Git概述&#xff08;Git历史&#xff09;_哔哩哔哩_bilibili 2.学习Linux系统文本编辑器的使用 vi编辑器操作指令分享 (baidu.com) (13条消息) nano编辑器的使用_SudekiMing的博客-CSDN博客 windows下载安装Git官…...

【计算机视觉中的 GAN 】如何稳定GAN训练(3)

一、说明 在上一篇文章中&#xff0c;我们达到了理解未配对图像到图像翻译的地步。尽管如此&#xff0c;在实现自己的超酷深度GAN模型之前&#xff0c;您必须了解一些非常重要的概念。如本文所提的GAN模型新成员的引入&#xff1a;Wasserstein distance&#xff0c;boundary eq…...

一文讲清楚地图地理坐标系

前言 我最近在做一个和地图有关的项目&#xff0c;这里本人地图采用的是mapbox&#xff0c;其中涉及一个功能需要根据用户输入的地点直接定位到地图上的对应的位置&#xff0c;本人开始想的是直接调用百度的接口根据地名直接获取坐标&#xff0c;发现在地图上的位置有偏移不够…...

助力青少年科技创新人才培养,猿辅导投资1亿元设立新基金

近日&#xff0c;在日本千叶县举办的2023年第64届国际数学奥林匹克&#xff08;IMO&#xff09;竞赛公布比赛结果&#xff0c;中国队连续5年获得团体第一。奖牌榜显示&#xff0c;代表中国参赛的6名队员全部获得金牌。其中&#xff0c;猿辅导学员王淳稷、孙启傲分别以42分、39分…...

代码随想录算法训练营之JAVA|第十八天| 235. 二叉搜索树的最近公共祖先

今天是第 天刷leetcode&#xff0c;立个flag&#xff0c;打卡60天&#xff0c;如果做不到&#xff0c;完成一件评论区点赞最高的挑战。 算法挑战链接 235. 二叉搜索树的最近公共祖先https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/descriptio…...

IO进程线程第五天(8.2)进程函数+XMind(守护进程(幽灵进程),输出一个时钟,终端输入quit时退出时钟)

1.守护进程&#xff08;幽灵进程&#xff09; #include<stdio.h> #include<head.h> int main(int argc, const char *argv[]) {pid_t cpid fork();if(0cpid){ //创建新的会话pid_t sidsetsid();printf("sid%d\n",sid);//修改运行目录为不可卸载的文件…...

物联网远程智能控制设备——开关量/正反转百分比控制

如今生产生活的便利性极大程度上得益于控制技术的发展&#xff0c;它改变了传统的工作模式&#xff0c;并将人们从【纯劳力】中解放出来。如今&#xff0c;随着科学技术的进步&#xff0c;控制器的种类及应用领域也越来越多。 物联网远程智能控制设备就是一种新型的、能够用于…...

echarts图表基本使用

折线图 import * as echarts from echarts;const chartDom document.getElementById(main); const myChart echarts.init(chartDom); const option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [820, 932, …...

排序进行曲-v1.0

排序 排序是将一组数据按照一定的规则进行排列的过程。在计算机科学中&#xff0c;排序是一 种常见的算法问题&#xff0c;通常用于对数据进行整理、查找、统计等操作。概念解读 基本概念 排序算法&#xff1a;排序算法是实现数据排序的具体方法。常见的排序算法包括冒泡排序…...

算法入门篇——用位运算解决一些问题

目录 1.判断一个数是2的次方数 2.统计一个数&#xff0c;它的二进制数中&#xff0c;1的个数 3.在2*&#xff08;n-1&#xff09;个数中&#xff0c;找到只出现一次的那个数 1.判断一个数是2的次方数 这个问题有好几种做法&#xff0c;但是最优雅的解法是用’位运算‘来做。…...

腾讯云-宝塔添加MySQL数据库

1. 数据库菜单 2. 添加数据库 3. 数据库添加成功 4. 上传数据库文件 5. 导入数据库文件 6. 开启数据库权限 7. 添加安全组 (宝塔/腾讯云) 8. Navicat 连接成功...

【雕爷学编程】MicroPython动手做(27)——物联网之掌控板小程序

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…...

Mysql删除重复数据通用SQL

在日常开发过程中&#xff0c;可能会出现一些 bug&#xff0c;导致 Mysql 数据库数据重复&#xff0c;需要删除重复数据&#xff0c;这里记录下删除重复数据的通用 SQL &#xff0c;方便以后需要时查阅 1、写法一 DELETE t1 FROMtbl_name t1 INNER JOIN tbl_name t2 WHEREt1.…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?

FTP&#xff08;File Transfer Protocol&#xff09;本身是一个基于 TCP 的协议&#xff0c;理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况&#xff0c;主要原因包括&#xff1a; ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染&#xff08;SSR&#xff09;与静态网站生成&#xff08;SSG&#xff09; 框架&#xff0c;由 Vercel 开发。它简化了构建生产级 React 应用的过程&#xff0c;并内置了很多特性&#xff1a; ✅ 文件系…...

Git 命令全流程总结

以下是从初始化到版本控制、查看记录、撤回操作的 Git 命令全流程总结&#xff0c;按操作场景分类整理&#xff1a; 一、初始化与基础操作 操作命令初始化仓库git init添加所有文件到暂存区git add .提交到本地仓库git commit -m "提交描述"首次提交需配置身份git c…...

【Vue】scoped+组件通信+props校验

【scoped作用及原理】 【作用】 默认写在组件中style的样式会全局生效, 因此很容易造成多个组件之间的样式冲突问题 故而可以给组件加上scoped 属性&#xff0c; 令样式只作用于当前组件的标签 作用&#xff1a;防止不同vue组件样式污染 【原理】 给组件加上scoped 属性后…...

我认为STM32输入只分为模拟输入 与 数字输入

核心概念解析 模拟输入 (Analog Input) 设计目的&#xff1a;直接连接模拟信号&#xff08;如ADC采集电压、温度传感器输出&#xff09; 硬件行为&#xff1a; ✅ 断开内部数字电路&#xff08;施密特触发器禁用&#xff09; ✅ 信号直通模拟外设&#xff08;如ADC、运放&…...