java枚举如何使用
Java枚举的基本用法
枚举(Enum)是Java 5引入的一种特殊数据类型,用于定义一组固定的常量。枚举类型通过enum关键字声明,每个枚举常量默认是public static final的实例。
public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
枚举的属性和方法
枚举可以像普通类一样包含属性和方法,每个枚举常量可以有自己的实现。

public enum Operation {
PLUS("+") {
public double apply(double x, double y) { return x + y; }
},
MINUS("-") {
public double apply(double x, double y) { return x - y; }
};
private final String symbol;
Operation(String symbol) { this.symbol = symbol; }
public abstract double apply(double x, double y);
}
枚举的常用方法
Java为所有枚举类型自动提供了以下常用方法:
values(): 返回枚举的所有值数组valueOf(String name): 根据名称返回对应的枚举常量name(): 返回枚举常量的名称ordinal(): 返回枚举常量的序数(位置)
Day[] days = Day.values();
Day monday = Day.valueOf("MONDAY");
String name = monday.name();
int ordinal = monday.ordinal();
枚举实现接口
枚举可以实现接口,为所有枚举常量提供统一的行为。

public interface Command {
void execute();
}
public enum LogLevel implements Command {
ERROR {
public void execute() { System.err.println("Error logging"); }
},
WARNING {
public void execute() { System.out.println("Warning logging"); }
};
}
枚举集合的使用
Java集合框架提供了专门处理枚举的类,如EnumSet和EnumMap。
EnumSet<Day> weekend = EnumSet.of(Day.SATURDAY, Day.SUNDAY);
EnumMap<Day, String> activities = new EnumMap<>(Day.class);
activities.put(Day.MONDAY, "Work");
枚举的单例模式
由于枚举实例天生是单例的,因此枚举是实现单例模式的最佳方式。
public enum Singleton {
INSTANCE;
public void doSomething() {
// singleton behavior
}
}






