枚举最常规的使用

导读:本篇文章讲解 枚举最常规的使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

对于单一的常量,我们通常会放到常量类中,如果有需要就添加一个。但是,如果是固定数量,比如春夏秋冬、总部机构类型等,使用枚举是一个更好的方式,因为它们不仅仅有对应的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;
}

关于枚举类的本质问题,请参考:

Java 枚举:理解枚举本质

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2750.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!