前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java switch 使用枚举类

Java switch 使用枚举类

作者头像
全栈程序员站长
发布2022-09-14 09:54:52
1.2K0
发布2022-09-14 09:54:52
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

开发过程中为了代码的可阅读性和可维护性,很多类型字段往往会习惯使用枚举去定义,可是在一些判断里面想用switch去代替if else 就会出现以下问题

代码语言:javascript
复制
public enum SexType {
    MAN(1, "男"),
    GIRL(2, "女"),
    ;
    private int type;
    private String work;

    SexType(int type, String work) {
        this.type = type;
        this.work = work;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    public String getWork() {
        return work;
    }

    public void setWork(String work) {
        this.work = work;
    }
}

如果直接使用会因为case后跟的是常量表达式而导致报错

Java switch 使用枚举类
Java switch 使用枚举类

解决办法:知道枚举的值,可先获取枚举值对应的枚举,再使用switch

1、修改枚举类,新增一个静态方法,getByType()

代码语言:javascript
复制
package com.jaryn.emun;

public enum SexType {
    MAN(1, "男"),
    GIRL(2, "女"),
    OTHER(0, "未知"),
    ;
    private int type;
    private String work;

    SexType(int type, String work) {
        this.type = type;
        this.work = work;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    public String getWork() {
        return work;
    }

    public void setWork(String work) {
        this.work = work;
    }

    public static SexType getByType(int type){
        for (SexType constants : values()) {
            if (constants.getType() == type) {
                return constants;
            }
        }
        return OTHER;
    }
}

2、修改方法逻辑

Java switch 使用枚举类
Java switch 使用枚举类

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159286.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决办法:知道枚举的值,可先获取枚举值对应的枚举,再使用switch
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档