枚举最常规的使用
枚举 常规 使用
2023-09-11 14:22:57 时间
对于单一的常量,我们通常会放到常量类中,如果有需要就添加一个。但是,如果是固定数量,比如春夏秋冬、总部机构类型等,使用枚举是一个更好的方式,因为它们不仅仅有对应的code,还有对应的name,或者说是KV,此时是使用枚举的最好时机。
public enum SeasonEnum {
// 枚举实例必须定义在枚举类的最前面
SPRING("1", "春天"),
SUMMER("2", "春天"),
AUTUMN("3", "春天"),
WINTER("4", "春天");// 最后结尾的枚举实例必须以“;”结尾
private String seasonId;
private String seasonName;
// 构造函数必须私有化,使用public编译会报错
private SeasonEnum (String seasonId, String seasonName) {
this.seasonId = seasonId;
this.seasonName = seasonName;
}
}
此时,一个简单使用的枚举类就编写完成了。至于如何使用,其实很简单,说白了,枚举类就是一个常量类。
if (SeasonEnum.SPRING.seasonId.equals("1")){
String seasonName = SeasonEnum.SPRING.seasonName;
}
或者给枚举类提供一个get方法,通过get方法获取其属性;但是一般不建议提供set方法,因为其本质是一个常量类,本来是提供给外接口或方法调用的,并不是为了修改,如果使用set方法似乎与定义枚举(常量)的初衷相违背。
如果需要传递一个参数,来获取对应的枚举的value,或者说,放到这里就是seasonName,可以在枚举类中添加一个静态方法:
// 此处方法名是为了避免和该枚举类的get方法相同
public static String getSeasonNameBySeasonId (String seasonId) {
for (SeasonEnum season : SeasonEnum.values()) {
if (season.seasonId.equals(seasonId)) {
return season.seasonName;
}
}
return StringUtils.EMPTY;
}
关于枚举类的本质问题,请参考: