java switch case null_如何在switch中使用null
Beez..
12
鉴于:
public enum PersonType {
COOL_GUY(1),
JERK(2);
private final int typeId;
private PersonType(int typeId) {
this.typeId = typeId;
}
public final int getTypeId() {
return typeId;
}
public static PersonType findByTypeId(int typeId) {
for (PersonType type : values()) {
if (type.typeId == typeId) {
return type;
}
}
return null;
}
}
对我来说,这通常与数据库中的查找表一致(仅适用于很少更新的表).
但是,当我尝试findByTypeId在switch语句中使用时(很可能是用户输入)......
int userInput = 3;
PersonType personType = PersonType.findByTypeId(userInput);
switch(personType) {
case COOL_GUY:
// Do things only a cool guy would do.
break;
case JERK:
// Push back. Don't enable him.
break;
default:
// I don't know or care what to do with this mess.
}
......正如其他人所说,这导致了NPE @ switch(personType) {.我开始实现的一种解决方法(即"解决方案")是添加一种UNKNOWN(-1)类型.
public enum PersonType {
UNKNOWN(-1),
COOL_GUY(1),
JERK(2);
...
public static PersonType findByTypeId(int id) {
...
return UNKNOWN;
}
}
现在,您不必在重要位置进行空值检查,您可以选择或不选择处理UNKNOWN类型.(注意:-1在业务场景中是一个不太可能的标识符,但显然选择对您的用例有意义的东西).
`UNKNOWN`是我见过的最好的解决方案,并且过度使用了nullchecks. (2认同)
java switch case null_如何在switch中使用null相关推荐
- c语言中的null_如何在C中使用NULL
c语言中的null Several programming languages make use of the concept of null. 几种编程语言都使用null的概念. Go has ni ...
- php switch case in,如何在PHP中使用switch case'或'?
请尝试本文中的以下示例:[http://phpswitch.com/] 可能的开关案例: (一世). 一个简单的switch语句 切换声明是神奇而神奇的. 它是一种语言,允许您在值的不同选项之间进行选 ...
- java switch case 跳转_Java switch case语句
1.switch case 语句有如下规则: switch 语句中的变量类型可以是: byte.short.int 或者 char.从 Java SE 7 开始,switch 支持字符串 String ...
- c语言 switch case 字符串,c语言switch case用法详解
c语言switchcase用法详解 switch是"开关"的意思,它也是一种"选择"语句,但它的用法非常简单.switch是多分支选择语句.说得通俗点,多分支就 ...
- 如何用java创建超链接_Java如何在PPT中的幻灯片上创建超链接?
在Java编程中,如何在PPT中的幻灯片上创建超链接? 注意:需要访问网址:http://poi.apache.org/download.html , 下载一个Apache POI软件包.这里下载最新 ...
- MySQL中使用CASE出错,如何在MySQL中正确使用CASE..WHEN
如何在MySQL中正确使用CASE..WHEN 这里是一个演示查询,注意它非常简单,仅在base_price为0的位置获取,并且仍然select条件3: SELECT CASE course_enro ...
- java for 下标_Java如何在 Word 中设置上、下标
上标是指比同一行中其他文字稍高的文字,而下标是指比同一行中其他文字稍低的文字.在生活中,我们常见的平方米.立方米等符号以及化学中的各种元素符号,都是利用上.下标来表示的.本文将介绍通过Free Spi ...
- java jcombobox长度_如何在JToolBar中设定JComboBox的大小?
如何在JToolBar中设定JComboBox的大小? 我设计了一个JToolBar,并且在上边添加了一个JComboBox,可是我发现这个JComboBox长度无法控制,它将JToolBar上剩余空 ...
- java+script+当前日期_如何在JavaScript中获取当前日期?
如何在JavaScript中获取当前日期? #1楼 您可以使用扩展了 Date对象的Date.js库,从而可以使用.today()方法. #2楼 如果您想对日期格式进行更多的粒度控制,我强烈建议您查看 ...
最新文章
- 有人从英伟达借了台DGX A100,让神经网络自己造了个GTA5自己玩
- 构建线性模型(Lasso)并通过系数(coefficients)可视化分析特征重要度
- 2019年「自然语言处理NLP」的“高光时刻” --- 28篇标志性论文
- 可微偏导数一定存在_【导数压轴题】“偏导数”与含参不等式
- boost::random模块实现允许直观地检查分布函数的结果的测试程序
- DCMTK:OFpath和相关内容的测试程序
- unittest所有断言方法
- 计算机科学创新大赛,计信学院举办第六届科技创新小发明大赛
- 使用MesaSQLite入库CSV文件
- 小C语言程序----词法分析程序输出单词
- Peeking inside LuaJIT(窥探LuaJIT)
- 计算机台式机怎么用无限,台式机如何无线上网 台式机实现无线上网的教程【图文】-太平洋电脑网PConline-太平洋电脑网...
- ImportError: No module named osgeo解决办法
- 学习笔记 02:关于在某宝上面购买的stm32f103c8t6最小系统开发板如何使用USBtoTTL模块烧录程序的记录
- 首次授权中国区独立维修商,高冷的苹果也为“五斗米“折腰?
- 售后支持领域的服务指标
- Linux下hosts文件详解
- C++操作windows剪贴板数据(含文件复制)
- SSH便利店管理系统
- 【面试笔试-c/c++】兰亭集势2013校园招聘试题。
热门文章
- 2021年中国5G手机发展现状及市场竞争格局分析:华为持续领跑国内5G手机市场[图]
- Ubuntu下连接红米2无法找到设备解决方案
- 计算机报名照片最小像素高宽,网上报名照片如何确定大小
- 计算机考试不在学籍库,有消息!中考报名将由学籍库直接导入,取消学校考试排名........
- Unity UGUI 代码改变遮挡层级
- vue页面详情页返回列表页_vue 详情页返回列表页,保留列表页之前的筛选条件...
- Smartforms 总计小计
- 关于java中的魔幻数字47你知道么
- MATLAB浮点数详解
- 从爆款单品到全屋智能 Aqara如何引领行业变革