1 switch

switch(expression){case value:break;
}
  • expression
    变量类型为byte,short,int,char,string
  • value
    必须为字符串常量或字面量

由于case中的值必须为字符串常量或字面量,使用enum构造swtich时,不可以使用Enum.getValue作为case值,因此,可以先在enum中构造一个swtich,然后,再使用swtich。

2 switch+enum

使用switch+enum结构时,先在enum中构造switch结构,返回enum结构,作为case的常量。

2.1 enum

enum Province{HEILONGJIANG("1", "黑龙江"),JILIN("2", "吉林"),LIAONING("3", "辽宁"),;private String code;private String provinceName;Province(String code, String provinceName){this.code = code;this.provinceName = provinceName;}public String getCode(){return code;}public String getProvinceName(){return provinceName;}public static Province getProvince(String code){switch(code){case "1":return Province.HEILONGJIANG;case "2":return Province.JILIN;case "3":return Province.LIAONING;default:return Province.HEILONGJIANG;}}
}

2.2 switch

2.2.1 switch

Province province = Province.getProvince(String.valueOf(i));
switch(province){case HEILONGJIANG:System.out.println("Province name: " + Province.HEILONGJIANG.getProvinceName());break;case JILIN:System.out.println("Province name: " + Province.JILIN.getProvinceName());break;case LIAONING:System.out.println("Province name: " + Province.LIAONING.getProvinceName());break;}

2.2.2 enum

public static Province getProvince(String code){switch(code){case "1":return Province.HEILONGJIANG;case "2":return Province.JILIN;case "3":return Province.LIAONING;default:return Province.HEILONGJIANG;}
}

2.3 mix

package com.company.basicdatatype;/*** Switch + Enum function test.* @author xindaqi* @since 2020-09-07*/enum Province{HEILONGJIANG("1", "黑龙江"),JILIN("2", "吉林"),LIAONING("3", "辽宁"),;private String code;private String provinceName;Province(String code, String provinceName){this.code = code;this.provinceName = provinceName;}public String getCode(){return code;}public String getProvinceName(){return provinceName;}public static Province getProvince(String code){switch(code){case "1":return Province.HEILONGJIANG;case "2":return Province.JILIN;case "3":return Province.LIAONING;default:return Province.HEILONGJIANG;}}
}public class SwitchEnumTest {public static void main(String[] args){for(int i = 1; i <= 3; i++){Province province = Province.getProvince(String.valueOf(i));switch(province){case HEILONGJIANG:System.out.println("Province name: " + Province.HEILONGJIANG.getProvinceName());break;case JILIN:System.out.println("Province name: " + Province.JILIN.getProvinceName());break;case LIAONING:System.out.println("Province name: " + Province.LIAONING.getProvinceName());break;}}}}

3 小结

Java基础系列:switch+enum相关推荐

  1. 夯实Java基础系列14:深入理解Java枚举类

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  2. 夯实Java基础系列22:一文读懂Java序列化和反序列化

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  3. 夯实Java基础系列15:Java注解简介和最佳实践

    Java注解简介 注解如同标签 Java 注解概述 什么是注解? 注解的用处 注解的原理 元注解 JDK里的注解 注解处理器实战 不同类型的注解 类注解 方法注解 参数注解 变量注解 Java注解相关 ...

  4. 夯实Java基础系列19:一文搞懂Java集合类框架,以及常见面试题

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  5. Java基础系列五 面向对象程序设计

    Java基础系列第一章 初识Java语言 Java基础系列第二章 Java语言基础 Java基础系列第三章 Java流程控制 Java基础系列第四章 Java数组与字符串 Java基础系列第五章 面向 ...

  6. string substring的用法_夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战...

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  7. 基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!

    什么是Cookie? Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制. Cookie是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个co ...

  8. java中this_夯实Java基础系列7:一文读懂Java 代码块和执行顺序

    目录 #java中的构造方法 #构造方法简介 #构造方法实例 #例-1 #例-2 #java中的几种构造方法详解 #普通构造方法 #默认构造方法 #重载构造方法 #java子类构造方法调用父类构造方法 ...

  9. [转载] 夯实Java基础系列8:深入理解Java内部类及其实现原理

    参考链接: Java内部类 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tut ...

  10. java基础系列十七(时间日期转换)

    目录 一.概述 二.基础知识 2.1 时区 2.2 格林威治时间 2.3 时间戳 三.Date/Calendar/SimpleDateFormat 3.1 Date 3.2 Calendar 3.3 ...

最新文章

  1. 2016 - 1- 21 - RunLoop使用(2016-1-24修改一次)(2016 - 1 - 24 再次修改)
  2. 纽约州金融服务局(NYDFS)为比特币现金(BCH)打开绿灯
  3. 导出txt文件宏_利用solidwords二次开发导出三维曲面方阵点坐标方法
  4. 使用Git,显示一个分支中的所有提交,但不显示其他分支中的所有提交
  5. tensorflow 加载模型
  6. Asp.net中基于Forms验证的角色验证授权[转]
  7. 套接字有哪些类型?socket有哪些类型?
  8. vux Cell组件
  9. 单片机C语言编程:.H文件与.C文件的关系!
  10. Hibernate---对象的三种状态
  11. windowsCE异常和中断服务程序初探(=)
  12. 图像领域深度学习的七个境界
  13. java pattern详解_JAVA正则表达式:Pattern类与Matcher类详解
  14. 宁德时代机器人编程开发_高通发布5G机器人开发平台,内置强大AI算力。各大厂商竞相发布机器人处理平台,万物互联的时代即将到来...
  15. Sublime Merge for Mac(git客户端软件)
  16. linux 修改git端口号,SSH默认端口更改后使用Git
  17. 数据集的非均衡问题(imbalanced data)和应对方法
  18. 多智能体自主协同技术
  19. 2022年四方系统/四方支付系统部署实战,以及细节讨论,Gitee版本
  20. 在线生成圣诞帽子的头像HTML源码

热门文章

  1. JAVA单车管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
  2. Incremental Graph Convolutional Network for Collaborative Filtering(阅读论文笔记)
  3. 初识搜索引擎_搜索相关参数梳理以及bouncing results问题解决方案
  4. 手把手教用爬虫爬sciencedirect学术研究
  5. Dynamic Scoping (动态范围)
  6. 「win工具」Win 上好用的效率神器Wox
  7. 计算机在生物技术的应用论文,计算机技术在生物学中的应用
  8. Shader山下(六)镜面高光
  9. linux dns劫持转发,linux的dns被劫持
  10. ARM+DSP双核处理器应用程序攻略