Java 枚举类型(Enum)是一种特殊的类,用于表示固定数量的常量值。枚举类型可以用于以下场景:
- 表示一组有限的固定值:枚举类型可以用来表示一组固定的常量值,例如星期、月份、颜色等。
public enum Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
- 状态机:枚举类型可以用来表示状态机的状态,每个状态可以有一个或多个转换。
public enum State { START, RUNNING, PAUSED, STOPPED }
- 选项配置:枚举类型可以用来表示一组选项配置,例如操作系统的类型、编程语言的类型等。
public enum OperatingSystem { WINDOWS, MAC, LINUX, ANDROID, IOS }
- 函数参数:枚举类型可以作为函数的参数,以便在函数内部根据不同的参数值执行不同的操作。
public enum Operation { ADD, SUBTRACT, MULTIPLY, DIVIDE } public int performOperation(int a, int b, Operation operation) { switch (operation) { case ADD: return a + b; case SUBTRACT: return a - b; case MULTIPLY: return a * b; case DIVIDE: return a / b; default: throw new IllegalArgumentException("Invalid operation"); } }
- 遍历一组值:枚举类型可以用来遍历一组值,例如遍历一个集合中的所有元素。
public enum Color { RED, GREEN, BLUE, YELLOW, ORANGE, PURPLE } public void printColors() { for (Color color : Color.values()) { System.out.println(color); } }
- 实现 switch 语句:枚举类型可以用来替代 switch 语句中的字符串常量,提高代码的可读性和安全性。
public enum Direction { UP, DOWN, LEFT, RIGHT } public void move(Direction direction) { switch (direction) { case UP: System.out.println("Moving up"); break; case DOWN: System.out.println("Moving down"); break; case LEFT: System.out.println("Moving left"); break; case RIGHT: System.out.println("Moving right"); break; default: throw new IllegalArgumentException("Invalid direction"); } }