java枚舉類型的查找

@AllArgsConstructor
@Getter
public enum FileFilterRangeEnum {FILE_NAME("文件名稱","fileName"),FILE_CONTENT("文件內容","fileContent");private final String text;private final String value;// 根據傳入的字符串值查找對應的枚舉常量public static FileFilterRangeEnum getEnumByValue(String value) {// 1.空值防御:如果輸入值為空或空字符串,直接返回nullif (ObjectUtil.isEmpty(value))  return null;// 2.遍歷枚舉:遍歷該枚舉類型的所有實例for (FileFilterRangeEnum anEnum : FileFilterRangeEnum.values()) {// 3.值匹配:檢查當前枚舉實例的值是否與輸入值匹配if (anEnum.getValue().equals(value))  return anEnum;}// 4.未找到匹配項:遍歷完所有枚舉常量仍未找到時返回nullreturn null;}

1.?枚舉項定義

枚舉類包含兩個常量,分別表示兩種文件過濾范圍:

  • FILE_NAME("文件名稱", "fileName")
    表示按文件名稱進行過濾。

  • FILE_CONTENT("文件內容", "fileContent")
    表示按文件內容進行過濾。

每個枚舉常量關聯兩個屬性:

  • text: 可讀性強的中文描述(如“文件名稱”)。

  • value: 實際用于程序邏輯的標識符(如"fileName")。


2.?Lombok 注解

  • @AllArgsConstructor
    自動生成全參構造函數,用于初始化?text?和?value?屬性。

  • @Getter
    自動生成?getText()?和?getValue()?方法,提供對私有屬性的訪問。


3.?getEnumByValue?方法

這是一個工具方法,根據傳入的?value?查找對應的枚舉常量,邏輯如下:

  1. 空值防御
    使用?ObjectUtil.isEmpty(value)?檢查輸入,避免空指針異常。

  2. 遍歷枚舉項
    通過?FileFilterRangeEnum.values()?遍歷所有枚舉實例。

  3. 值匹配
    比較枚舉項的?value?與輸入值,找到匹配項則返回對應的枚舉常量。

  4. 未找到返回?null
    遍歷完成后仍未匹配時返回?null


4.?應用場景

此枚舉類可用于需要區分文件過濾范圍的場景,例如:

  • 用戶在前端選擇按“文件名稱”或“文件內容”過濾文件時,后端接收對應的?value(如?"fileName"),通過?getEnumByValue?方法轉換為枚舉,再根據枚舉類型執行不同的過濾邏輯。

  • 提供類型安全的文件過濾范圍表示,避免硬編碼字符串帶來的維護問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895574.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895574.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895574.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小白win10安裝并配置yt-dlp

需要yt-dlp和ffmpeg 注意存放路徑最好都是全英文 win10安裝并配置yt-dlp 一、下載1.下載yt-dlp2. fffmpeg下載 二、配置環境三、cmd操作四、yt-dlp下視頻操作 一、下載 1.下載yt-dlp yt-dlp地址 找到win的壓縮包點下載,并解壓 2. fffmpeg下載 ffmpeg官方下載 …

【技術解析】MultiPatchFormer:多尺度時間序列預測的全新突破

今天給我大家帶來一篇最新的時間序列預測論文——MultiPatchFormer。這篇論文提出了一種基于Transformer的創新模型,旨在解決時間序列預測中的關鍵挑戰,特別是在處理多尺度時間依賴性和復雜通道間相關性時的難題。MultiPatchFormer通過引入一維卷積技術&…

145,【5】 buuctf web [GWCTF 2019]mypassword

進入靶場 修改了url后才到了注冊頁面 注測后再登錄 查看源碼 都點進去看看 有個反饋頁面 再查看源碼 又有收獲 // 檢查$feedback是否為數組 if (is_array($feedback)) {// 如果是數組&#xff0c;彈出提示框提示反饋不合法echo "<script>alert(反饋不合法);<…

CTF-WEB: 利用iframe標簽利用xss,waf過濾后再轉換漏洞-- N1ctf Junior display

核心邏輯 // 獲取 URL 查詢參數的值 function getQueryParam(param) { // 使用 URLSearchParams 從 URL 查詢字符串中提取參數 const urlParams new URLSearchParams(window.location.search); // 返回查詢參數的值 return urlParams.get(param); } // 使用 DOMPuri…

晶閘管主要參數分析與損耗計算

1. 主要參數 斷態正向可重復峰值電壓 :是晶閘管在不損壞的情況下能夠承受的正向最大阻斷電壓。斷態正向不可重復峰值電壓 :是晶閘管只有一次可以超過的正向最大阻斷電壓,一旦晶閘管超過此值就會損壞,一般情況下 反向可重復峰值電壓 :是指晶閘管在不損壞的情況下能夠承受的…

el-select 設置寬度 沒效果

想實現下面的效果&#xff0c;一行兩個&#xff0c;充滿el-col12 然后設置了 width100%,當時一直沒有效果 解決原因&#xff1a; el-form 添加了 inline 所以刪除inline屬性 即可

Python創建FastApi項目模板

1. 項目結構規范 myproject/ ├── app/ │ ├── core/ # 核心配置 │ │ ├── config.py # 環境配置 │ │ └── security.py # 安全配置 │ ├── routers/ # 路由模塊 │ │ └── users.py # 用戶路由 │ ├…

面試完整回答:SQL 分頁查詢中 limit 500000,10和 limit 10 速度一樣快嗎?

首先&#xff1a;在 SQL 分頁查詢中&#xff0c;LIMIT 500000, 10 和 LIMIT 10 的速度不會一樣快&#xff0c;以下是原因和優化建議&#xff1a; 性能差異的原因 LIMIT 10&#xff1a; 只需要掃描前 10 條記錄&#xff0c;然后返回結果。 性能非常高&#xff0c;因為數據庫只…

一款利器提升 StarRocks 表結構設計效率

CloudDM 個人版是一款數據庫數據管理客戶端工具&#xff0c;支持 StarRocks 可視化建表&#xff0c;創建表時可選擇分桶、配置數據模型。目前版本持續更新&#xff0c;在修改 StarRocks 表結構方面進一步優化&#xff0c;大幅提升 StarRocks 表結構設計效率。當前 CloudDM 個人…

數量5 - 平面圖形、立體幾何

目錄 一、平面幾何問題1.三角形2.其他圖形二、立體幾何與特殊幾何1.表面積2.體積3.等比放縮(簡單)4.幾何最值(簡單)5.最短路徑一、平面幾何問題 平面圖形: 立體圖形: 1.三角形 特殊直角

CAS單點登錄(第7版)7.授權

如有疑問&#xff0c;請看視頻&#xff1a;CAS單點登錄&#xff08;第7版&#xff09; 授權 概述 授權和訪問管理 可以使用以下策略實施授權策略以保護 CAS 中的應用程序和依賴方。 服務訪問策略 服務訪問策略允許您定義授權和訪問策略&#xff0c;以控制對向 CAS 注冊的…

53倍性能提升!TiDB 全局索引如何優化分區表查詢?

作者&#xff1a; Defined2014 原文來源&#xff1a; https://tidb.net/blog/7077577f 什么是 TiDB 全局索引 在 TiDB 中&#xff0c;全局索引是一種定義在分區表上的索引類型&#xff0c;它允許索引分區與表分區之間建立一對多的映射關系&#xff0c;即一個索引分區可以對…

排序(Sortable)

排序&#xff08;Sortable&#xff09; 引言 在計算機科學和數據管理領域&#xff0c;排序算法是一項基本且重要的技能。排序算法能夠將一組無序的數據轉換為有序的數據&#xff0c;從而便于后續的數據處理和分析。本文將深入探討排序算法的基本概念、常用排序方法、以及它們…

紫光展銳蜂窩物聯網芯片V8850榮獲國密一級安全認證

近日&#xff0c;紫光展銳蜂窩物聯網芯片V8850榮獲國密一級認證&#xff0c;標志著展銳V8850在安全能力方面獲得權威認可&#xff0c;位居行業領先水平。這是紫光展銳繼短距物聯網芯片V5663在2020獲得ARM PSA Level 2認證&#xff0c;蜂窩物聯網芯片V8811在2021年獲得ARM PSA L…

I.MX6ull-I2C

一,I2C總線介紹 I2C(Inter-Integrated Circuit 集成電路)總線是Philips公司在八十年代初推出的一種串行、半雙工的總 線&#xff0c;主要用于近距離、低速的芯片之間的通信&#xff1b;I2C總線有兩根雙向的信號線&#xff0c;一根數據線SDA用于收 發數據&#xff0c;一根時鐘線…

書籍推薦:《書法課》林曦

記得樊登老師說過&#xff0c;如果你想了解一個事物&#xff0c;就去讀5本相關的書&#xff0c;你會比大部分人都更了解它。這是我讀的第4本和“書法”有關的書&#xff0c;作為一個零基礎的成年人&#xff0c;林曦這本《書法課》非常值得一讀。&#xff08;無論你是否寫字&…

【大疆無人機地圖測繪技術學習:高精度、高效率的全流程解決方案】

文章目錄 大疆無人機地圖測繪算法詳解一、數據采集&#xff08;一&#xff09;飛行平臺與傳感器&#xff08;二&#xff09;航線規劃&#xff08;三&#xff09;數據類型 二、數據處理與建模&#xff08;一&#xff09;數據導入與預處理&#xff08;二&#xff09;空三計算&…

【刪除tomcat默認管理控制臺】

停止Tomcat&#xff1a; ./catalina.sh stop 刪除管理控制臺應用&#xff1a; 進入Tomcat的webapps目錄&#xff1a; cd /path/to/tomcat/webapps List item 刪除manager和host-manager文件夾&#xff1a; rm -rf manager host-manager 啟動Tomcat&#xff1a; ./catali…

工具資料+H3C 交換機常見故障分析排查+高危操作

當我們從客戶那里接到一個故障時,我們根據現象讓客戶收集一堆信息,然后集成商、代理商、設備廠家一級一級的反復咨詢與確認,天天經歷這樣的場景。幾乎每個故障我們都要經過多個層級的人處理,信息的交流占據了每個人大部分的時間,反復的收集信息與確認問題現象也會讓客戶不厭其煩…

STM32:USB 虛擬串口以及使用usb->dfu進行iap

本文介紹stm32上usb的常用功能虛擬串口和DFU(Download Firmware Update) 文章目錄 前言一、usb二、虛擬串口1.cubemx配置1.我們選用高速usb&#xff0c;然后選擇內部低速的phy&#xff0c;這樣使用的usb&#xff0c;最高速度為12Mbit每秒。2.USB_DEVICE cdc類配置3.時鐘配置&am…