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

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.空值防御:如果输入值为空或空字符串,直接返回null
        if (ObjectUtil.isEmpty(value))  return null;

        // 2.遍历枚举:遍历该枚举类型的所有实例
        for (FileFilterRangeEnum anEnum : FileFilterRangeEnum.values()) {
            // 3.值匹配:检查当前枚举实例的值是否与输入值匹配
            if (anEnum.getValue().equals(value))  return anEnum;
        }
        // 4.未找到匹配项:遍历完所有枚举常量仍未找到时返回null
        return 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 方法转换为枚举,再根据枚举类型执行不同的过滤逻辑。

  • 提供类型安全的文件过滤范围表示,避免硬编码字符串带来的维护问题。

相关文章:

  • USC 安防平台之移动侦测
  • github上文件过大无法推送问题
  • 智能编程助手功能革新与价值重塑之:GitHub Copilot
  • 今日写题work05
  • Autojs: 使用 SQLite
  • Word中打开开发工具【修改日期控件显示格式】
  • C#学习之S参数读取(s2p文件)
  • 如何预防DDOS攻击
  • 多模态本地部署ConVideoX-5B模型文生视频
  • 深入理解 Rust 的迭代器:从基础到高级
  • JZ39 数组中出现次数超过一半的数字 (Boyer-Moore 投票算法)候选法
  • 浮点数的机器码表示
  • linux--关于makefile
  • 白话文实战OpenFeign
  • 基于opencv的 24色卡IQA评测算法源码-可完全替代Imatest
  • SpringBoot 集成 Caffeine 实现本地缓存
  • WPF创建自定义类和控件及打包成dll引用
  • 2.10 Playground Chat提示工程实战:从交互调试到企业级应用的全链路指南
  • 驱动开发、移植(最后的说法有误,以后会修正)
  • 【Apache Paimon】-- 16 -- 利用 paimon-flink-action 同步 kafka 数据到 hive paimon 表中
  • 新华时评:任凭风云变幻,中俄关系从容前行
  • “五一”假期国内出游3.14亿人次,同比增长6.4%
  • AI世界的年轻人|“热潮下要有定力”,她的目标是让机器人真正步入家庭
  • 晒被子最大的好处,其实不是杀螨虫,而是……
  • 专访|刘伟强:在《水饺皇后》里,我放进儿时全家福照片
  • 金正恩视察重要坦克厂并强调更迭陆军装备