Java基础系列:switch+enum
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相关推荐
- 夯实Java基础系列14:深入理解Java枚举类
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- 夯实Java基础系列22:一文读懂Java序列化和反序列化
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- 夯实Java基础系列15:Java注解简介和最佳实践
Java注解简介 注解如同标签 Java 注解概述 什么是注解? 注解的用处 注解的原理 元注解 JDK里的注解 注解处理器实战 不同类型的注解 类注解 方法注解 参数注解 变量注解 Java注解相关 ...
- 夯实Java基础系列19:一文搞懂Java集合类框架,以及常见面试题
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- Java基础系列五 面向对象程序设计
Java基础系列第一章 初识Java语言 Java基础系列第二章 Java语言基础 Java基础系列第三章 Java流程控制 Java基础系列第四章 Java数组与字符串 Java基础系列第五章 面向 ...
- string substring的用法_夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战...
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- 基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!
什么是Cookie? Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制. Cookie是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个co ...
- java中this_夯实Java基础系列7:一文读懂Java 代码块和执行顺序
目录 #java中的构造方法 #构造方法简介 #构造方法实例 #例-1 #例-2 #java中的几种构造方法详解 #普通构造方法 #默认构造方法 #重载构造方法 #java子类构造方法调用父类构造方法 ...
- [转载] 夯实Java基础系列8:深入理解Java内部类及其实现原理
参考链接: Java内部类 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tut ...
- java基础系列十七(时间日期转换)
目录 一.概述 二.基础知识 2.1 时区 2.2 格林威治时间 2.3 时间戳 三.Date/Calendar/SimpleDateFormat 3.1 Date 3.2 Calendar 3.3 ...
最新文章
- 2016 - 1- 21 - RunLoop使用(2016-1-24修改一次)(2016 - 1 - 24 再次修改)
- 纽约州金融服务局(NYDFS)为比特币现金(BCH)打开绿灯
- 导出txt文件宏_利用solidwords二次开发导出三维曲面方阵点坐标方法
- 使用Git,显示一个分支中的所有提交,但不显示其他分支中的所有提交
- tensorflow 加载模型
- Asp.net中基于Forms验证的角色验证授权[转]
- 套接字有哪些类型?socket有哪些类型?
- vux Cell组件
- 单片机C语言编程:.H文件与.C文件的关系!
- Hibernate---对象的三种状态
- windowsCE异常和中断服务程序初探(=)
- 图像领域深度学习的七个境界
- java pattern详解_JAVA正则表达式:Pattern类与Matcher类详解
- 宁德时代机器人编程开发_高通发布5G机器人开发平台,内置强大AI算力。各大厂商竞相发布机器人处理平台,万物互联的时代即将到来...
- Sublime Merge for Mac(git客户端软件)
- linux 修改git端口号,SSH默认端口更改后使用Git
- 数据集的非均衡问题(imbalanced data)和应对方法
- 多智能体自主协同技术
- 2022年四方系统/四方支付系统部署实战,以及细节讨论,Gitee版本
- 在线生成圣诞帽子的头像HTML源码
热门文章
- JAVA单车管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
- Incremental Graph Convolutional Network for Collaborative Filtering(阅读论文笔记)
- 初识搜索引擎_搜索相关参数梳理以及bouncing results问题解决方案
- 手把手教用爬虫爬sciencedirect学术研究
- Dynamic Scoping (动态范围)
- 「win工具」Win 上好用的效率神器Wox
- 计算机在生物技术的应用论文,计算机技术在生物学中的应用
- Shader山下(六)镜面高光
- linux dns劫持转发,linux的dns被劫持
- ARM+DSP双核处理器应用程序攻略