返回顶部
首页 > 资讯 > 后端开发 > JAVA >「Java基础入门」Java中switch怎么使用枚举
  • 447
分享到

「Java基础入门」Java中switch怎么使用枚举

javaservletjvm 2023-09-02 19:09:46 447人浏览 安东尼
摘要

在Java开发中,switch语句是一种常用的流控制语句,用于根据不同的条件执行不同的代码块。而当使用枚举类型作为条件时,我们常常会遇到“Constant expression required”的报错问题,这给程序开发造成了不小的困扰。

在Java开发中,switch语句是一种常用的流控制语句,用于根据不同的条件执行不同的代码块。而当使用枚举类型作为条件时,我们常常会遇到“Constant expression required”的报错问题,这给程序开发造成了不小的困扰。

switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。 我们创建一个枚举:

java

复制代码

@Getter @AllArgsConstructor public enum ProductEnum { TYPE_1(1,"精品推荐"), TYPE_2(2,"热门榜单"), TYPE_3(3,"首发新品"), TYPE_4(4,"猜你喜欢"); private Integer value; private String desc; }

用switch语句:

java

复制代码

int a = 0; // order switch (a) { //精品推荐 case ProductEnum.TYPE_1.getValue(): System.out.println("1"); break; //首发新品 case ProductEnum.TYPE_2.getValue(): System.out.println("1"); break; // 猜你喜欢 case ProductEnum.TYPE_3.getValue(): System.out.println("1"); break; // 热门榜单 case ProductEnum.TYPE_4.getValue(): System.out.println("1"); break; }

看上去没有问题,但是因为switch中需要的是一个常量,但是枚举中又是不可以加final关键字,所以会出现这种情况:(Constant expression required:需要常量表达式

我们想要使用就需要封装一个方法在枚举类里面:

java

复制代码

public static ProductEnum toType(int value) { return Stream.of(ProductEnum.values()) .filter(p -> p.value == value) .findAny() .orElse(null); }

封装后的枚举类:

java

复制代码

@Getter @AllArgsConstructor public enum ProductEnum { TYPE_1(1,"精品推荐"), TYPE_2(2,"热门榜单"), TYPE_3(3,"首发新品"), TYPE_4(4,"猜你喜欢"); private Integer value; private String desc; public static ProductEnum toType(int value) { return Stream.of(ProductEnum.values()) .filter(p -> p.value == value) .findAny() .orElse(null); } }

这个时候我们这么用:

java

复制代码

int a = 0; switch (ProductEnum.toType(a)) { //精品推荐 case TYPE_1: System.out.println("1"); break; //首发新品 case TYPE_3: System.out.println("2");; break; // 猜你喜欢 case TYPE_4: System.out.println("3"); break; // 热门榜单 case TYPE_2: System.out.println("4"); break; }

这样就没问题啦:

当我们在处理枚举类型时,遇到了“需要常量表达式”的问题。针对这个问题,我们可以按照上述方法进行处理,将枚举的值转化成枚举类型,来避免编译错误。

除此之外,值得一提的是,在实际应用中,枚举也是一种非常重要的数据类型。它可以用于表示各种状态、选项以及配置项,还可以为程序中的常量命名,以减少硬编码。因此,熟练掌握枚举类型的相关操作,是我们开发高效、优质代码所必不可少的基本技能。

总之,本文向大家介绍了如何在Java开发中处理枚举类型,让大家更好地理解和掌握switch语句的使用方法。希望大家能够通过学习和实践,巩固这些基础知识,并在日常工作中充分发挥它们的应用价值,为自己的开发工作提升整体效率与质量。

作者:掉头发的王富贵
链接:https://juejin.cn/post/7241216722892226615

来源地址:https://blog.csdn.net/BASK2312/article/details/131070034

--结束END--

本文标题: 「Java基础入门」Java中switch怎么使用枚举

本文链接: https://lsjlt.com/news/391297.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 「Java基础入门」Java中switch怎么使用枚举
    在Java开发中,switch语句是一种常用的流控制语句,用于根据不同的条件执行不同的代码块。而当使用枚举类型作为条件时,我们常常会遇到“Constant expression required”的报错问题,这给程序开发造成了不小的困扰。 ...
    99+
    2023-09-02
    java servlet jvm
  • 枚举怎么在Java中使用
    本篇文章给大家分享的是有关枚举怎么在Java中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用方法如下:package com.ljq.test;public class...
    99+
    2023-05-31
    java 枚举 ava
  • Java中的枚举怎么使用
    本篇内容主要讲解“Java中的枚举怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中的枚举怎么使用”吧!枚举(enum)枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数...
    99+
    2023-07-05
  • 怎么用好Java中的枚举
    本篇内容主要讲解“怎么用好Java中的枚举”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用好Java中的枚举”吧!1、概览enum关键字在 java5 中引入,表示一种特殊类型的类,其总是继...
    99+
    2023-06-16
  • 在Java中如何使用枚举
    这篇文章给大家分享的是有关在Java中如何使用枚举的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。枚举类型(Enumerated Types) 让我们先看下面这一段小程序: enum Day {SUNDAY, MO...
    99+
    2023-06-03
  • Java基础入门Swing中间容器的使用
    目录Java基础入门 Swing中间容器下面举例说明一下JScrollPane的方法Java Swing顶层容器类Swing拥有三个常用的顶层容器类Java基础入门 Swing中间容...
    99+
    2024-04-02
  • 怎么在java中使用枚举实现单例
    怎么在java中使用枚举实现单例?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. ...
    99+
    2023-06-14
  • Java的贪心和枚举怎么使用
    今天小编给大家分享一下Java的贪心和枚举怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。笔试技巧:学会根据数据范围猜...
    99+
    2023-06-29
  • 再谈在Java中使用枚举(转)
    再谈在Java中使用枚举(转)[@more@]从C++转到Java上的程序员一开始总是对Java有不少抱怨,其中没有枚举就是一个比较突出的问题。那么为什么Java不支持枚举呢?从程序语言的角度讲,支持枚举意味着什么呢?我们能不能找到一种方法...
    99+
    2023-06-03
  • 为什么建议使用Java枚举
    这篇文章主要介绍“为什么建议使用Java枚举”,在日常操作中,相信很多人在为什么建议使用Java枚举问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”为什么建议使用Java枚举”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-16
  • java为什么避免使用枚举
    在Java中,枚举是一种特殊的数据类型,用于定义一组有限的常量。虽然枚举在某些情况下非常有用,但也有一些情况下建议避免使用枚举,原因...
    99+
    2023-08-30
    java
  • Java枚举类在生产环境中怎么使用
    这篇文章主要讲解了“Java枚举类在生产环境中怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java枚举类在生产环境中怎么使用”吧!使用大体分为确定业务场景状态、定义枚举类、自定义查...
    99+
    2023-06-29
  • 一文了解Java中枚举的使用
    目录概述枚举介绍和使用枚举的本质枚举常见用途枚举创建单例枚举抽象方法概述 Java中枚举,大家在项目中经常使用吧,主要用来定义一些固定值,在一个有限的集合内,比如在表示一周的某一天,...
    99+
    2024-04-02
  • 枚举如何在java项目中使用
    今天就跟大家聊聊有关枚举如何在java项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、枚举类型作为常量package myenum; public enum Color...
    99+
    2023-05-31
    java 枚举 ava
  • 怎么使用java枚举实现单例模式
    这篇文章主要介绍了怎么使用java枚举实现单例模式的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用java枚举实现单例模式文章都会有所收获,下面我们一起来看看吧。用法说明:在功能上类似于 public 字...
    99+
    2023-07-04
  • java中怎么继承一个枚举类
    在Java中,枚举类是不能被继承的。枚举类是通过使用`enum`关键字来定义的,它们是final的,意味着不能被继承。枚举类的实例是...
    99+
    2023-10-12
    java
  • 怎么在java中使用switch
    本篇文章给大家分享的是有关怎么在java中使用switch,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、We...
    99+
    2023-06-14
  • Switch怎么在Java中使用
    Switch怎么在Java中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、java当中的switch与C#相比有以下区别注:在java中switch后的表达式的类型只能...
    99+
    2023-05-30
    java switch
  • Java基础入门篇之如何使用For循环
    这篇文章主要讲解了“Java基础入门篇之如何使用For循环”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java基础入门篇之如何使用For循环”吧! 一、for循环语句在java中...
    99+
    2023-06-15
  • 利用java怎么模仿一个枚举
    今天就跟大家聊聊有关利用java怎么模仿一个枚举,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如下所示:enum Color{//枚举  RED,GRE...
    99+
    2023-05-31
    java 枚举 ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作