switch/catch
- public class SwitchTest {
- public static void main(String[] args) {
- String param = null;
- switch (param) {
- case "null":
- System.out.println("null");
- break;
- default:
- System.out.println("default");
- }
- }
- }
这段代码会抛出NullPointerException,
switch处不可为null
switch 处可以使用Enum类,使用细节如下;
- //先创建Enum类
public enum DataTypeEnum {- HOUR("hour"),
- DAY("day"),
- /** 小时类型值** */
- WEEK("week"),
- /** 小时类型值* */
- MONTH("month"),
- /** 小时类型值* */
- YEAR("year"),
- /** 小时类型值* */
- MINUTE("minute");
- private String value;
- private DataTypeEnum(String value) {
- this.value = value;
- }
- public static DataTypeEnum getType(String dataTypeCode) {
- for (DataTypeEnum enums : DataTypeEnum.values()) {
- if (enums.value.equals(dataTypeCode)) {
- return enums;
- }
- }
- return null;
- }
- public String getValue() {
- return value;
- }
- }
- //在main方法中进行测试
public static void main(String[] args) {- String datatype = "week";
- DataTypeEnum type = DataTypeEnum.getType(datatype);
if(null != type){ //当switch处为null会报空指针异常,所以在此处进行判断- switch (type){
- case DAY:
- System.out.println("day");
- break;
- case HOUR:
- System.out.println("hour");
- break;
- case WEEK:
- System.out.println("week");
- case YEAR:
- System.out.println("year");
- default:
- System.out.println("default");
- }
}- }
- //运行结果是
week
year
default
总结:
1. 当使用switch时,注意避免NullPointException;
2. 如果没有break的话,会继续执行下面的case,包括default;
3.switch、catch支持的数据类型有char,byte,short,int,String,Enum
switch/catch的更多相关文章
- JavaScript编码规范[百度]
JavaScript编码规范 1 前言 2 代码风格 2.1 文件 2.2 结构 2.2.1 缩进 2.2.2 空格 2.2.3 换行 2.2.4 语句 2.3 命名 ...
- Javascript编码规范,好的代码从书写规范开始,增强代码的可读性,可维护性,这是相当重要的!
1. 前言 JavaScript在百度一直有着广泛的应用,特别是在浏览器端的行为管理.本文档的目标是使JavaScript代码风格保持一致,容易被理解和被维护. 虽然本文档是针对JavaScript设 ...
- JavaScript编码规范(1)
参考的是百度公司的JS规范,分为两部分.这是第一部分 [建议] JavaScript 文件使用无 BOM 的 UTF-8 编码. 空格 [强制] 二元运算符两侧必须有一个空格,一元运算符与操作对象之间 ...
- C++ 第六课:C/C++关键字及其用法
asm 插入一个汇编指令. auto 声明一个本地变量. bool 声明一个布尔型变量. break 结束一个循环. case 一个switch语句的一部分. catch 处理 thrown 产生的异 ...
- 学习一份百度的JavaScript编码规范
JavaScript编码规范 1 前言 2 代码风格 2.1 文件 2.2 结构 2.2.1 缩进 2.2.2 空格 2.2.3 换行 2.2.4 语句 2.3 命名 2.4 注释 2.4.1 单行注 ...
- 前端读者 | 百度前端编码规范(JS)
本文来自:百度FEX 1 前言 JavaScript在百度一直有着广泛的应用,特别是在浏览器端的行为管理.本文档的目标是使JavaScript代码风格保持一致,容易被理解和被维护. 虽然本文档是针对J ...
- C/C++ 关键字的使用方法详解
cppreference.com -> C/C++ 关键字 -> 细节 C/C++ 关键字 asm 语法: asm( "instruction" ); asm允许你在你 ...
- Android应用开发细节点
1.如果handler是在主线程声明,就属于主线程,handleMessage属于引用handler的那个线程:2.ByteArrayOutputStream/ByteArrayInputStream ...
- matlab switch case 和 try catch用法示例
%清除变量或指令 clc;clear; % 允许用户输入参数 disp ('该功能练习switch语句'); disp ('输入1-10其中一个数,系统判定奇偶. '); count = input ...
随机推荐
- Log4net 配置文件
<?xml version="1.0" encoding="utf-8" ?> <configuration> <!--Log日记 ...
- C语言学习系列(一)开门首篇
一.特辑 此次是我自己的学习之路,和大家一起分享(我现在是做Java),途中遇到什么问题大家也可以提出来一起讨论一起进步: 主要参考教程是菜鸟教程上面的C语言教程,以及大学课本C语言教程-第四版(谭浩 ...
- HDU 6125 - Free from square | 2017 Multi-University Training Contest 7
思路来自这里 - - /* HDU 6125 - Free from square [ 分组,状压,DP ] | 2017 Multi-University Training Contest 7 题意 ...
- HDU 6129 - Just do it | 2017 Multi-University Training Contest 7
比赛时脑子一直想着按位卷积... 按题解的思路: /* HDU 6129 - Just do it [ 规律,组合数 ] | 2017 Multi-University Training Contes ...
- 爬取前尘无忧python职位信息并保存到mongo数据库
1.re实现 import re,os import requests from requests.exceptions import RequestException MAX_PAGE = 10 # ...
- Appium自动化测试教程-自学网-SDK
SDK:软件开发工具包,被软件开发工程师用于特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合. 因此,Android SDK指的是Android专属的软件开发工具包. 1,安装 ...
- git 从某一版本拉取新分支,并在新分支合并某几个commit
场景:需要回退至红框中的那个版本,并且只添加“缓存逻辑优化,增加加载中的状态”这一次commit,其他的commit不添加. 步骤: 1) 切换到指定分支 dev git checkout dev 2 ...
- springboot与springcloud区别:
- MySQL服务器基准测试
一.基准测试简介 1.什么是基准测试 数据库的基准测试是对数据库的性能指标进行定量的.可复现的.可对比的测试. 基准测试与压力测试 基准测试可以理解为针对系统的一种压力测试.但基准测试不关心业务逻辑, ...
- linux 下使用dd制作启动U盘 安装linux
1.找到U盘: sudo fdisk -l 2.卸载U盘:(这个不是必须,如果没有挂载u盘,可以省略) sudo umount /dev/sdb1 3.建立文件系统,格式化U盘: sudo mkfs. ...