枚举类和字典

一般情况下,如果系统中存在大量的状态常量值的话,比如表示季节的唯一标识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增添查改就可以了。

猜你喜欢

转载自blog.csdn.net/weixin_43213064/article/details/109704852
今日推荐