
Java枚举是一种特殊的数据类型,用于表示一组具名的常量,下面详解常见的8种Java枚举方式@mikechen
1. 基本枚举类型
在Java中,使用 enum 关键字定义一个枚举类型。
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
2. 带有值的枚举
每个枚举常量都有一个关联的值,通过构造方法初始化。
如下所示:
public enum Day {
SUNDAY("Sun"), MONDAY("Mon"), TUESDAY("Tue"), WEDNESDAY("Wed"),
THURSDAY("Thu"), FRIDAY("Fri"), SATURDAY("Sat");
private final String abbreviation;
private Day(String abbreviation) {
this.abbreviation = abbreviation;
}
public String getAbbreviation() {
return abbreviation;
}
}
3.Switch语句使用枚举
枚举类型在 switch 语句中非常有用,如下所示:
Day today = Day.MONDAY;
switch (today) {
case MONDAY:
System.out.println("It's Monday!");
break;
case TUESDAY:
System.out.println("It's Tuesday!");
break;
// 其他case...
default:
System.out.println("It's some other day.");
break;
}
4.实现接口的枚举
枚举类型可以实现接口,为每个枚举常量提供不同的实现。
如下所示:
public enum Operation implements MathOperation {
ADD {
@Override
public int apply(int x, int y) {
return x + y;
}
},
SUBTRACT {
@Override
public int apply(int x, int y) {
return x - y;
}
},
// 其他枚举常量...
}
5.枚举的遍历
通过 values() 方法,可以遍历枚举的所有常量。
如下所示:
for (Day day : Day.values()) {
System.out.println(day);
}
6.特点方法枚举
枚举类型可以包含常量特定的方法,这些方法在每个枚举常量上提供不同的实现。
如下所示:
public enum Operation {
ADD {
@Override
public int apply(int x, int y) {
return x + y;
}
},
SUBTRACT {
@Override
public int apply(int x, int y) {
return x - y;
}
},
// 其他枚举常量...
}
7.获取枚举常量的顺序
ordinal() 方法返回枚举常量在枚举中的位置,从0开始计数。
如下所示:
int position = Day.MONDAY.ordinal(); // 返回 MONDAY 在枚举中的位置,从0开始计数
8.获取枚举常量的名称
name() 方法返回枚举常量的名称,如下所示:
String dayName = Day.MONDAY.name(); // 返回枚举常量的名称,例如 "MONDAY"
以上是关于Java枚举的常见用法,包括定义、遍历、实现接口、包含其他属性和方法等,选择适当的方法取决于具体的应用场景。
mikechen睿哥
10年+一线大厂架构实战经验,就职于阿里、淘宝等一线大厂,操盘多个亿级大厂核心项目。