天天看点

枚举 构造函数 注意事项

枚举

定义:枚举是一个被命名的整形常数的集合,用于声明一组带标识符的常数。

类似人的性别 男和女,一周的星期只能是七天中的一个。类似这种当一个变量有几种固定可能的取值时。就可以将它定义为枚举类型。

枚举被设计成是单例模式,即枚举类型会由JVM在加载的时候,实例化枚举对象,你在枚举类中定义了多少个就会实例化多少个,JVM为了保证每一个枚举类元素的唯一实例,构造函数设计成private,保持唯一性。

以下代码中:当枚举类OrderStatusEnumes被JVM加载时,实例化枚举对象,例:UNPAY、CANCEL

注意:枚举类不能使用lombok的Data注解自动生成getter/setter。

package com.offcn.dycommon.enums;

public enum OrderStatusEnumes {
   
   UNPAY((byte)0,"未支付"),
   CANCEL((byte)1,"已取消"),
   PAYED((byte)2,"支付成功"),
   WAITING((byte)3,"等待发货"),
   SEND((byte)4,"已发货"),
   SENDED((byte)5,"已送达"),
   SUCCESS((byte)6,"交易完成"),
   FAIL((byte)7,"交易未完成");
   
   private byte code;
   private String status;
    //get方法 OrderStatusEnumes.UNPAY.getCode()  ------------  0
   public byte getCode() {
      return code;
   }
   
   public String getStatus() {
      return status;
   }
	//初始化时使用
   private OrderStatusEnumes(byte code, String status) {
      this.code = code;
      this.status = status;
   }
   

}