- 枚举其实就是特殊的常量类,构造方法强制为 private,所以可以省略该修饰符;
《阿里巴巴 Java 开发手册》建议枚举类名带上 Enum 尾缀;
public enum Size {
SMALL("S"), MEDIUM("M"), LARGE("L");
private final String abbreviation;
// 可以省略 private 修饰符
Size(String abbreviation) {
this.abbreviation = abbreviation;
}
public String getAbbreviation() {
return abbreviation;
}
}
枚举类都继承自
Enum
类,因此都是Enum
类的子类。因此,所有枚举类都实现了Comparable
和Serializable
接口;public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable { ... }
Enum
类还提供了valueOf()
、values()
、ordinal()
、name()
、toString()
等实用方法。 ```java Size medium = Size.valueOf(“MEDIUM”);
Size[] values = Size.values();
Size.SMALL.ordinal(); // 0 Size.MEDIUM.ordinal(); // 1
Size.SMALL.name(); // SMALL
Size.SMALL.toString(); // SMALL
``
注意
ordinal()返回的 index 从 0 开始,
name()和
toString()` 等效。