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的更多相关文章

  1. JavaScript编码规范[百度]

    JavaScript编码规范 1 前言   2 代码风格   2.1 文件   2.2 结构   2.2.1 缩进   2.2.2 空格   2.2.3 换行   2.2.4 语句   2.3 命名 ...

  2. Javascript编码规范,好的代码从书写规范开始,增强代码的可读性,可维护性,这是相当重要的!

    1. 前言 JavaScript在百度一直有着广泛的应用,特别是在浏览器端的行为管理.本文档的目标是使JavaScript代码风格保持一致,容易被理解和被维护. 虽然本文档是针对JavaScript设 ...

  3. JavaScript编码规范(1)

    参考的是百度公司的JS规范,分为两部分.这是第一部分 [建议] JavaScript 文件使用无 BOM 的 UTF-8 编码. 空格 [强制] 二元运算符两侧必须有一个空格,一元运算符与操作对象之间 ...

  4. C++ 第六课:C/C++关键字及其用法

    asm 插入一个汇编指令. auto 声明一个本地变量. bool 声明一个布尔型变量. break 结束一个循环. case 一个switch语句的一部分. catch 处理 thrown 产生的异 ...

  5. 学习一份百度的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 单行注 ...

  6. 前端读者 | 百度前端编码规范(JS)

    本文来自:百度FEX 1 前言 JavaScript在百度一直有着广泛的应用,特别是在浏览器端的行为管理.本文档的目标是使JavaScript代码风格保持一致,容易被理解和被维护. 虽然本文档是针对J ...

  7. C/C++ 关键字的使用方法详解

    cppreference.com -> C/C++ 关键字 -> 细节 C/C++ 关键字 asm 语法: asm( "instruction" ); asm允许你在你 ...

  8. Android应用开发细节点

    1.如果handler是在主线程声明,就属于主线程,handleMessage属于引用handler的那个线程:2.ByteArrayOutputStream/ByteArrayInputStream ...

  9. matlab switch case 和 try catch用法示例

    %清除变量或指令 clc;clear; % 允许用户输入参数 disp ('该功能练习switch语句'); disp ('输入1-10其中一个数,系统判定奇偶. '); count = input ...

随机推荐

  1. open_window()到底做了什么?

    Hlong MainWndID= (Hlong)m_hWnd; open_framegrabber(, , , , , , , , "default", , -, &Acq ...

  2. 第82题:删除排序链表中的重复元素II

    一. 问题描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 ...

  3. eclipse中toolbar位置的系统URI

    org.eclipse.ui.ide.IIDEActionConstants 这个类里存了系统toolbar,菜单等URI 定义自己的toolbar或者menu时,指定位置after=addition ...

  4. 7、组件注册-@Conditional-按照条件注册bean

    7.组件注册-@Conditional-按照条件注册bean @Conditional 按照一定的条件进行判断,满足条件给容器注入bean 按照条件进行动态装配. Spring 4 开始提供的一个注解 ...

  5. 018_linux驱动之_阻塞和非阻塞

    阻塞操作     是指在执行设备操作时若不能获得资源则挂起进程,直到满足可操作的条件后再进行操作. 被挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足.   非阻塞操作   进程 ...

  6. [Luogu] 借教室

    https://www.luogu.org/problemnew/show/P1083 二分第i天不满足 前缀和 + 差分判断 #include <iostream> #include & ...

  7. 自制 yum 源仓库

    转自:https://www.cnblogs.com/marility/p/7278374.html 背景 客户服务器为内网机器,centos7系统,且无法与外网连接.需要部署对应的LANMP环境及其 ...

  8. 1625: 【例 1】反素数 Antiprime

    1625: [例 1]反素数 Antiprime [题目描述] 原题来自:POI 2001 如果一个大于等于 1 的正整数 n,满足所有小于 n 且大于等于 1 的所有正整数的约数个数都小于 n 的约 ...

  9. 百度翻译api初使用(很久没写python了,写几行玩玩)

    调用free api做做简易的翻译 这个是百度翻译api文档 http://api.fanyi.baidu.com/api/trans/product/apidoc 照着百度api给的文档向web服务 ...

  10. Apache Kudu: Hadoop生态系统的新成员实现对快速数据的快速分析

    A new addition to the open source Apache Hadoop ecosystem, Apache Kudu completes Hadoop's storage la ...