Java switch 使用枚举类

Java switch 使用枚举类开发过程中为了代码的可阅读性和可维护性,很多类型字段往往会习惯使用枚举去定义,可是在一些判断里面想用switch去代替ifelse就会出现以下问题publicenumSexType{MAN(1,”男”),GIRL(2,”女”),;privateinttype;privateStringwork;SexType(inttype,Stringwork){this.type=type;

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

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

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 使用枚举类

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

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

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 使用枚举类

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SpringBoot整合Redis使用教程

    SpringBoot整合Redis使用教程redis 在 springboot 中的简单使用

    2026年1月15日
    1
  • p2p流媒体技术(简述流媒体的特点)

    【前言】今天发现二哥在搞流媒体,顿时来了兴趣(之前在考试维护的时候经常听老师说P2P等),追问之下之前林哥搞成功过,而且写了一系列博客;于是乎便翻开博客,认真看了看,写的非常不错:从概念到安装实现(linux和windows)再到性能测试对比非常不错(详见:http://blog.csdn.net/u012407484/article/category/2732453);…

    2022年4月18日
    93
  • 无刷直流电机模糊PID控制「建议收藏」

    无刷直流电机在克服了有刷直流电机机械换相缺点的同时,又具有结构简单、运行可靠以及调速性能好等优点,在很多领域中得到了广泛的应用。本次课题阐述了无刷直流电机的基本结构、运行原理和数学模型,并以无刷直流电机为被控对象,根据电机的特点和控制要求确定了三闭环控制策略,分别是位置、转速及电流环控制三者之间实行串级连接。采用模糊PID控制理论,搭建无刷直流电机和控制器的仿真模型来验证电机控制策略的可行性,使要能使伺服控制器的具体性能满足:无静差,响应快,超调量小的设计要求。结合三闭环控制结构的特点,在位置环中采用模

    2022年4月16日
    69
  • 网络图片查看器

    网络图片查看器

    2021年9月6日
    48
  • JVM(四)—一道面试题搞懂JVM类加载机制

    JVM(四)—一道面试题搞懂JVM类加载机制有这样一道面试题:classSingleton{privatestaticSingletonsingleton=newSingleton();publicstaticintvalue1;publicstaticintvalue2=0;privateSingleton(){value1++;…

    2022年5月24日
    34
  • webstrom激活码【中文破解版】

    (webstrom激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0E14HXZ4QL-eyJsaWN…

    2022年3月28日
    161

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号