@Getter
public enum MyEnum {
UP(0, "在架"),
DOWN(1, "下架");
private Integer code;
private String message;
ProductStatusEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
public static void main(String[] args){
System.out.println(ProductStatusEnum.UP.getCode());
System.out.println(ProductStatusEnum.UP.getMessage());
}
}
上面的例子就是一个枚举类,public后面是enum ,而不是class,可以这样理解:
UP(0, "在架")这句就是调用这个ProductStatusEnum枚举类的构造方法ProductStatusEnum(Integer code, String message) 对成员变量code以及message初始化,这样我们就可以这样获取你需要的值。
输出:
0
在架
接下来使用枚举类采用饿汉模式,实现类对象线程安全,当多线程访问MyEnum 的构造方法时,jvm保证同一时间只有一个线程调用构造方法。
public class SingletonExample {
private SingletonExample() {
}
public static SingletonExample getInstance() {
return Singleton.INSTANCE.getSingletonExample7();
}
@Getter
private enum MyEnum {
INSTANCE;
private SingletonExample7 singletonExample;
//构造函数jvm保证绝对只调用一次
Singleton() {
singletonExample7 = new SingletonExample();
}
}
}