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类型,但是如果数据迁移的话,可能比较麻烦。