java枚举根据value获取(java 枚举)

介绍

Java枚举是一种特殊的数据类型。它是一组预定义常量的集合,这些常量在编译时被检查以确保它们仅是枚举中的一部分。使用枚举可以让代码更加可读、可维护,并且防止常见的错误。

根据value获取枚举

当我们有一个值,需要找到与其对应的枚举时,可以使用Java枚举中的valueOf()方法。该方法的参数为一个String类型的值,返回一个枚举类型的值。例如:

public enum Weekdays {
    MONDAY("星期一"),
    TUESDAY("星期二"),
    WEDNESDAY("星期三"),
    THURSDAY("星期四"),
    FRIDAY("星期五"),
    SATURDAY("星期六"),
    SUNDAY("星期天");

    private String name;

    Weekdays(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

public class Main {
    public static void main(String[] args) {
        String day = "星期三";
        Weekdays weekdays = Weekdays.valueOf(day);
        System.out.println(weekdays);
    }
}

输出结果为:WEDNESDAY

当我们根据值来查找枚举时,需要注意以下几点:

  • value值必须与枚举常量的name值相等
  • 该方法区分大小写
  • 如果传入的值不存在于枚举中,会抛出IllegalArgumentException异常

自定义根据value获取枚举方法

用Java枚举的valueOf()方法可以根据value值获取到枚举,而且返回的是一个枚举类型的值。但是,当我们有一些特殊的需求时(比如需要不区分大小写、需要根据value值获取对应的中文名等),就需要自定义根据value获取枚举的方法了。下面是一个例子:

public enum Gender {
    MAN("男性"),
    WOMAN("女性");

    private String name;

    Gender(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public static Gender fromName(String name) {
        for (Gender gender : Gender.values()) {
            if (gender.name.equals(name)) {
                return gender;
            }
        }
        return null;
    }

    public static Gender fromChineseName(String chineseName) {
        for (Gender gender : Gender.values()) {
            if (gender.name.equals(chineseName)) {
                return gender;
            }
        }
        return null;
    }
}

public class Main {
    public static void main(String[] args) {
        Gender gender1 = Gender.fromName("MAN");
        Gender gender2 = Gender.fromChineseName("男性");
        System.out.println(gender1);
        System.out.println(gender2);
    }
}

输出结果为:MANMAN

java枚举根据value获取(java 枚举)

在这个例子中,我们定义了两个自定义方法:fromName()方法和fromChineseName()方法,用来根据name和中文名获取Gender枚举类型的值。如果传入的值不存在于枚举中,这两个方法都会返回null。

总结

Java枚举是一种特殊的数据类型,它可以提高代码的可读性和可维护性。通过Java枚举的valueOf()方法,我们可以根据value值获取到枚举类型的值。同时,自定义根据value获取枚举的方法,可以满足特殊的需求。

在实际开发中,我们应该根据自己的需求来使用Java枚举,避免滥用、误用。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/javapeixun2gr.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月25日 上午6:53
下一篇 2023年4月25日 上午6:53

猜你喜欢