java中的枚举用法,枚举中switch、方法使用


提示:以下是本篇文章正文内容,下面案例可供参考

一、枚举是什么?

枚举的作用就是定义一组常量,使用枚举我们可以很好的描述一些特定的业务场景,比如一年中的春、夏、秋、冬,还有每周的周一到周天,还有各种颜色,以及可以用它来描述一些状态信息,比如前后端分离时返回的code码等。
JDK1.5之前需要自定义枚举类。
JDK 1.5 新增的 enum 关键字用于定义枚举类。


二、项目中使用场景

1、枚举描述春、夏、秋、冬季节

注:工作中如果只是简单的使用枚举定义变量,直接用下面代码改吧改吧就可用了。

//定义一个枚举,注:使用的是enum关键字
enum SeasonEnum {
    SPRING("春天", "春风又绿江南岸"),
    SUMMER("夏天", "映日荷花别样红"),
    AUTUMN("秋天", "秋水共长天一色"),
    WINTER("冬天", "窗含西岭千秋雪");
    private final String seasonName;
    private final String seasonDesc;

    private SeasonEnum(String seasonName, String seasonDesc) {
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }

    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    public static void main(String[] args) {
        SeasonEnum summer = SeasonEnum.SUMMER;
        //默认调用toString(),返回的是SUMMER字符串
        System.out.println(summer);

        //values():返回所有的枚举类对象构成的数组
        SeasonEnum[] values = SeasonEnum.values();
        for (int i = 0; i < values.length; i++) {
            System.out.println(values[i].getSeasonDesc());
        }
    }
}

2、前后端分离,定义返回状态码可以使用

enum ResCodeEnum {
    SUCCESS(200, "调用成功"),
    FAIL01(500, "内部报错"),
    FAIL02(404, "找不到路径");

    private final Integer code;
    private final String describe;

    ResCodeEnum(Integer code, String describe) {
        this.code = code;
        this.describe = describe;
    }

    public Integer getCode() {
        return code;
    }

    public String getDescribe() {
        return describe;
    }

    public static void main(String[] args) {
        ResCodeEnum success = ResCodeEnum.SUCCESS;
        //toString():返回枚举类对象的名称 ;  本次重新了toString
        System.out.println(success);

        /**
         * 返回成功的描述
         */
        ResCodeEnum[] values = ResCodeEnum.values();
        for (int i = 0; i < values.length; i++) {
            if (200 == values[i].getCode()) {
                System.out.println(values[i].getDescribe());
            }
        }
    }
}

3、枚举中switch的用法


public static void main(String[] args) {
   SeasonEnum seasonEnum = SeasonEnum.SPRING;
 
        switch (seasonEnum) {
            case SPRING:
                System.out.println(seasonEnum.getSeasonDesc());
                break;
            case SUMMER:
                System.out.println(seasonEnum.getSeasonDesc());
                break;
            case WINTER:
                System.out.println(seasonEnum.getSeasonDesc());
                break;
        }

4、枚举中方法的使用


    /**
     * 传过来seasonName,返回对应的枚举对象
     * @param seasonName
     * @return
     */
    public static SeasonEnum getSeasonEnum(String seasonName) {
        for (SeasonEnum it : SeasonEnum.values()) {
            if (it.getSeasonName() == seasonName) {
                return it;
            }
        }
        return null;
    }
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北漂IT民工_程序员_ZG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值