项目中突然报空指针异常

 Integer code=null;code=code==null?500:code;

排查发现三元运算符空指针异常,表面上看不出来有什么问题,编译器编译的时候会保证:2边数据类型一致如:

String code=true?"":0;

会编译不通过。因为String 和int不是一个类型

按照上面的逻辑Integer是class类型并不是数值类型 编译器应该编译不通过。其实编译之后编译器后的代码是:
ccode=code==null?500:code.initValue();

所以这段代码才会编译通过。但是当code是null 调用initValue就会报空指针异常

同理以下代码也会报空指针异常
 Integer code=null;int i=code;--编译之后代码int i=code.initValue()

这一切的原因都是编译器自动拆箱造成的。如下情况 价格是否为null判断就好了


转载于:https://www.cnblogs.com/LQBlog/p/9090647.html

java陷阱之自动拆箱相关推荐

  1. 如何理解Java中的自动拆箱和自动装箱?

    小伟刚毕业时面的第一家公司就被面试官给问住了,记忆尤深啊- 如何理解Java中的自动拆箱和自动装箱? 自动拆箱?自动装箱?什么鬼,听都没听过啊,这-这-知识盲区- 回到家后小伟赶紧查资料,我透,这不就 ...

  2. java中的自动拆箱和装箱(以及NEP问题)

    java中的自动拆箱和装箱 1.回顾知识点 java中的8种基本数据类型,可以分为三类 字符类型 char 布尔类型 boolean 整数类型 byte , short , int , long 浮点 ...

  3. 如何理解Java自动装箱_如何理解Java中的自动拆箱和自动装箱?

    如何理解Java中的自动拆箱和自动装箱? 自动拆箱?自动装箱?什么鬼,听都没听过啊,这...这..知识盲区... 回到家后小伟赶紧查资料,我透,这不就是问基本类型跟封装类型吗,面试官整啥名词呢... ...

  4. Java进阶之自动拆箱与自动装箱

    序. java基本类型介绍 java中,基本数据类型一共有8种,详细信息如下表: 类型 大小 范围 默认值 byte 8 -128 - 127 0 short 16 -32768 - 32768 0 ...

  5. Java中的自动拆箱装箱(AutoboxingUnboxing)

    一.基本类型打包器 1.基本类型:long.int.double.float.boolean 2.类类型:Long.Integer.Double.Float.Boolean 区别:基本类型效率更高,类 ...

  6. JAVA高级特性--自动拆箱-装箱,枚举类型

    基本数据类型转换为引用类型对象 一个自动装箱的例子 Integer i=10;相当于 Integer i=new Integer(10); 一个自动拆箱的例子 Integer m=10;int n=m ...

  7. 一文读懂什么是Java中的自动拆装箱

    本文主要介绍Java中的自动拆箱与自动装箱的有关知识. 基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型.它们是我们编程中使用最频繁的类型. Java是一种强类型 ...

  8. java integer valueof_一文读懂什么是Java中的自动拆装箱

    本文主要介绍Java中的自动拆箱与自动装箱的有关知识. 基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型.它们是我们编程中使用最频繁的类型. Java是一种强类型 ...

  9. [转载] 什么是Java中的自动拆装箱 integer

    参考链接: Java中autoboxing自动装箱整数对象的比较 本文主要介绍Java中的自动拆箱与自动装箱的有关知识. 1.基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class ...

最新文章

  1. Linux qgis 编译,QGIS简介与源代码编译
  2. matlab表白_520新玩法!MATLAB大神教你画爱心
  3. cout 输出指定位数,不足补0
  4. ICLR 2020 开源论文 | 隐空间的图神经网络:Geom-GCN
  5. CentOS 初体验九:curl 的使用
  6. UGUI_LayoutGroup布局
  7. 什么是spring(转载)
  8. iOS12.3正式版发布 iOS13亮相进入倒计时
  9. 剑指offer(C++)-JZ23:链表中环的入口结点(数据结构-链表)
  10. numpy基础1多维数组对象
  11. [UML]转:UML类图集中关系的总结
  12. JProfiler配置一个会话(测试工程)
  13. 让“王码五笔输入法”成为你的专用输入法!
  14. t分布 u分布 卡方分布_卡方分布、t分布和f分布各有哪些重要性质?
  15. 京瓷p5018cdn教程_京瓷P5018cdn驱动-京瓷ECOSYS P5018cdn打印机驱动下载 v7.4.1411官方版-下载啦...
  16. ERP系统各子系统功能模块页面
  17. 我要吐槽各大自媒体平台的权重问题
  18. zcu104 AXI DMA速度测试总结
  19. 花千芳口出狂言说英语没用,王思聪怒怼他!在线英语培训越来越重要!
  20. Real-Time Rendering 4th 译文《六 纹理(下)》

热门文章

  1. weblogic项目java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配 at oracle.jdbc.....错误解决
  2. 数据结构与算法之美day 6: 如何实现LRU缓存淘汰算法?
  3. 我爱自然语言处理bert ner chinese
  4. Pytorch 多 GPU 并行处理机制
  5. 自然语言处理课程(二):Jieba分词的原理及实例操作
  6. 基于Vue开发的购物车案例
  7. Python 应用领域以及版本之间的区别
  8. TensorRT-安装-使用
  9. Android动画之帧动画和补间动画
  10. 大数据调度平台Airflow(五):Airflow使用