(1)枚举举例(enum的本质是Enum(public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable)的子类)(因为Java单继承,所以enum不能继承其他类):
public enum Color {
RED(1), BLUE(2);
private Color(int index){
}
}
(2)本质解析(可反编译查看):
public class Color {
public static final Color RED = new Color(1);
public static final Color BLUE = new Color(2);
private Color(int index){
}
}
用法Color.RED是相同的。
(3)枚举型单例:
public enum Singleton {
INSTANCE;
public void whateverMethod() {
}
}
用法:Singleton.INSTANCE.whateverMethod();
(5)IDEA中工程目录中右键New-Java Class,选择Singleton可以快速生成一个单例。
public class A {
private static A ourInstance = new A();
public static A getInstance() {
return ourInstance;
}
private A() {
}
}