Java枚举-通过值查找对应的枚举
时间: 2024-11-04 13:15:03 浏览: 5
在Java中,枚举(enumeration)默认是线程安全并且顺序可预测的。如果你想要通过枚举的值来查找对应的枚举常量,通常的做法是创建一个静态方法,该方法接受一个整数作为输入,然后遍历所有枚举值,找到匹配的值并返回相应的枚举实例。由于枚举值的顺序是固定的,所以可以根据值的大小进行查找。
例如,假设我们有这样一个简单的枚举:
```java
public enum DayOfWeek {
MONDAY(1),
TUESDAY(2),
WEDNESDAY(3),
THURSDAY(4),
FRIDAY(5),
SATURDAY(6),
SUNDAY(7);
private int value;
DayOfWeek(int value) {
this.value = value;
}
public static DayOfWeek fromInt(int dayNumber) {
for (DayOfWeek day : values()) {
if (day.getValue() == dayNumber) {
return day;
}
}
throw new IllegalArgumentException("Invalid day number: " + dayNumber);
}
public int getValue() {
return value;
}
}
```
然后你可以通过`fromInt()`方法根据数值获取对应的`DayOfWeek`枚举:
```java
int dayNumber = 4; // 星期四
DayOfWeek dayOfWeek = DayOfWeek.fromInt(dayNumber);
System.out.println(dayOfWeek); // 输出 "THURSDAY"
```
阅读全文