枚举类和字典

一般情况下,如果系统中存在大量的状态常量值的话,比如表示季节的唯一标识code,分别为SPRING, SUMMER, FALL, WINTER,我们可以建立 一个字典表或者使用一个枚举类。
若存入数据库的字典表中,存入code值和中文名称,定义存取的方法和接口。
若使用枚举类也需要codename两个属性,在枚举类中可以定义获取全部枚举的方法。如:

import java.util.ArrayList;
import java.util.List;

public enum SeasonEnum {

   SPRING("春天","SPRING"),
   SUMMER("夏天","SUMMER"),
   FALL("秋天","FALL"),
   WINTER("冬天","WINTER");

   private final String name;
   private final String code;
   private SeasonEnum(String name,String code)
   {
       this.name = name;
       this.code=code;

   }

   public String getName() {
       return name;
   }

   public String getCode() {
       return code;
   }
   
   public List<EnumDO> getAll(){
       List<EnumDO> enumDOS=new ArrayList<>();
       for (SeasonEnum seasonEnum:SeasonEnum.values()){
           EnumDO enumDO=new EnumDO();
           enumDO.setCode(seasonEnum.getCode());
           enumDO.setCode(seasonEnum.getCode());
           enumDOS.add(enumDO);
       }
       return enumDOS;
   }
}

既然这两种方法都可以使用,又有什么区别呢。
使用枚举类不需要查表,速度更快,但是状态常量值发生改变的话,需要改变枚举类中的代码,重新打包发布。若存在数据库中不需要改动代码,写sql增添查改就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值