java枚举的应用

最近的项目中,看前辈们用到的枚举比较多,由于自己之前对枚举这种类型不是很了解,遂花费心机看了下,整理记录下。

1.枚举常量

  系统中定义的状态字段,用的比较多: 

public enum orderType{
      Pending,Confirm,Cancel,Expire,Success;
}

2.定义自定义方法:个人理解可用于转化字段

public static enum groupTypeEnum{
        gx("搞笑",0),fw("疯玩",1),xx("星象",2),jh("解惑",3),ss("时尚",4),lt("聊天",5),zs("真事",6);
        private final String name;
        private final int index;
        
        private groupTypeEnum(String name,int index){
            this.name = name;
            this.index = index;
        }
        
        public static String getName(int index){
            for(groupTypeEnum gEnum : groupTypeEnum.values()){
                if(gEnum.index == index){
                    return gEnum.name;
                }
            }
            return "";
        }
    }

或者

public enum OrderStatus
{
 
    Pending("待处理"), 
    Confirm("已确定"), 
    Cancel("已取消"),  
    Expire("已过期 "),  
    Success("已完成"); 

    private final String statusName; 

    private OrderStatus(String statusName) {  
         this.statusName = statusName;  
    }    
}

//取值:
OrderStatus.Cancel.statusName = 已取消
OrderStatus.Cancel = Cancel

ps:数据库mysql中对应的字段类型设置:如果字段是字符串,并且长度固定,可以尝试用char;如果是数值型,可以用tinyint。当然了,mysql支持enum类型,但是如果数据迁移的话,可能比较麻烦。

原文地址:https://www.cnblogs.com/eric-fang/p/4950565.html