对于单一的常量,我们通常会放到常量类中,如果有需要就添加一个。但是,如果是固定数量,比如春夏秋冬、总部机构类型等,使用枚举是一个更好的方式,因为它们不仅仅有对应的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;
}
关于枚举类的本质问题,请参考:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2750.html