枚举根据ordinal获取value
时间: 2023-09-02 12:02:36 浏览: 57
枚举是一种表示一组常量的数据类型。每个枚举常量都有一个与之相关联的值。在Java中,我们可以使用ordinal()方法来获取枚举常量的索引值,即该常量在枚举中的位置。但是,根据ordinal获取value并不是一种推荐的方法,因为它对于枚举常量的顺序敏感,并且如果枚举常量的顺序发生改变,那么与之相关的值也会改变。
更好的做法是在枚举中定义一个value字段,并在构造函数中进行初始化。这样可以确保每个枚举常量都有一个与之关联的值,并且这个值是固定的,不会因为顺序的改变而变化。这种方法也更直观和易于理解。
例如,我们定义一个表示星期的枚举类型:
public enum Weekday {
MONDAY("星期一"),
TUESDAY("星期二"),
WEDNESDAY("星期三"),
THURSDAY("星期四"),
FRIDAY("星期五"),
SATURDAY("星期六"),
SUNDAY("星期日");
private String value;
private Weekday(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
现在,我们可以使用getValue()方法获取每个枚举常量的值:
Weekday monday = Weekday.MONDAY;
System.out.println(monday.getValue()); // 输出:星期一
通过这种方式,我们可以根据枚举常量获取其对应的值,而不需要依赖于ordinal()方法,从而提高代码的可读性和可维护性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)