今天遇到一个奇怪的Java三元表达式中的空指针异常。特此记录。

代码

代码示意如下:

Integer itemVO = null;Integer globleLatenessToleranceUseAlternate = null;Integer latenessToleranceUseAlternate = (itemVO == null ? globleLatenessToleranceUseAlternate : itemVO.intValue());

从上面代码可以看出:当itemVO不为空时,就取itemVO的值;否则,就取globleLatenessToleranceUseAlternate的值。

原因

但问题就在globleLatenessToleranceUseAlternate。当itemVO为空时,如果取globleLatenessToleranceUseAlternate,并不会得到值null, 而是Java会把globleLatenessToleranceUseAlternate进行一个自动开箱拆箱处理。简言之,取得是 globleLatenessToleranceUseAlternate.intValue(), 此时,因为globleLatenessToleranceUseAlternate 本身是 null,因此 globleLatenessToleranceUseAlternate.intValue() 导致了空指针因此。

java的三项表达式_Java三元表达式中的陷阱相关推荐

  1. python之三元表达式嵌套三元表达式解析

    python的三元表达式相信学过python的朋友都会.但是大部分学python的朋友不知道的是三元表达式还可以嵌套三元表达式. 请看代码案例: cmp = lambda a, b: 0 if a = ...

  2. Java专题 基础篇--判断(三元表达式,switch等) +个税计算案例

    Java中各种判断 判断主要通过表达式或者boolean值来判断 比如 大于(>),小于(<),等于(==),大于等于(>=),小于等于(<=), 不等于(!=) 要注意 单个 ...

  3. 列表,字典表达式以及三元表达式

    1.三元表达式条件成立时的返回值 if 条件 else 条件不成立时的返回值三元表达式的意义就是让一些简单的if判断写成一行,减少代码量 def max2(x,y): if x > y: ret ...

  4. 【python】python的二元表达式和三元表达式

    二元表达式 x,y=4,3 if x>y: s = y else: s= x print s   x if x<y else y 三元表达式: >>> def f(x,y ...

  5. python 三元表达式_Python三元表达式

    我们知道Python没有三元表达式,但是我们通过技巧达到三元表达式的效果. 摘自<Dive Into Python>: 在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的 ...

  6. java双重for循环流程图_JAVA程序逻辑中的循环结构

    在上一篇文章中提到了程序逻辑通过顺序.分支.循环三种结构来实现的,并介绍了分支结构的执行语句,那么今天这篇文章介绍实现程序逻辑的另一种结构--循环结构. 什么是循环结构 循环结构是指在程序设计语言中按 ...

  7. java 读取pdf签名域_Java 获取PDF中的数字签名信息

    本文以Java代码演示如何获取PDF文档中的数字签名信息,包括签名人.签名位置.日期.原因.联系方式.签名在文档中的坐标等等. 程序环境包括: Jdk 1.8.0(版本要求>=1.6.0版本即可 ...

  8. java ognl表达式_java -------ognl表达式入门

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ----------------------------------------------------------------------------- ...

  9. java lambda 两个冒号_java lambda 表达式中的双冒号的用法说明 ::

    双冒号运算就是java中的[方法引用],[方法引用]的格式是 类名::方法名 注意是方法名哦,后面没有括号"()"哒.为啥不要括号,因为这样的是式子并不代表一定会调用这个方法.这种 ...

最新文章

  1. Linux LXC基本配置选项
  2. Linux学习笔记 -- 文本编辑器之 vi与vim
  3. 零基础 Amazon Web Services (AWS) 入门教程图文版(二)
  4. 打造机器人:为遥控小车加一个树莓派
  5. 跟随腾讯WeTest一起来2019Unreal Open Day!
  6. BZOJ 2286 [Sdoi2011]消耗战(虚树+树形DP)
  7. 计算机会计的专业知识竞赛,全国企业会计信息化知识竞赛测试题
  8. pat basic 1096 大美数
  9. 计算机房温湿度,数据中心机房标准的温湿度范围
  10. 电信客户流失数据分析(二)
  11. 延安市基础教育科研规划课题申请•评审书
  12. 这样的男人有几个;1.会为你哭的男人2.喜欢欺负你的男人3.会主动亲你的男人4.喜欢叫你傻瓜
  13. 大数据相关技术入门(基于CentOS7)
  14. win10 装黑苹果 完整教程
  15. android发送微信请求失败,安卓微信浏览器POST请求发不出去。
  16. 万物流变:从辩证法看互联网架构和人生
  17. 整整26本!由单墫教授主编、葛军等人操刀的高中数学教材都在这里!
  18. Ubuntu系统环境中C语言开发配置备忘笔记
  19. Linux使用ffmpeg添加水印,ffmpeg视频随机添加水印
  20. 静态时序分析(sta)/动态时序分析(dta)

热门文章

  1. Java...点点点语法
  2. Java日期格式转换成星期几
  3. STM32 网口转SPI通信
  4. SPIRE 架构、基本概念及原理介绍
  5. 最新背诵版 Java 面经汇总囊括了基本所有考点(建议收藏)
  6. python 全栈路线_python全栈要学什么 python全栈学习路线
  7. 网络稳定的第二道屏障: 带外网络DHCP异常排查方案
  8. Oracle更改字段类型Blob错误ora-22858
  9. [Mac] gradle command not found 解决方法
  10. ndcg 指标和k的关系