基本数据类型double和封装类型Double引起的bug
来源:互联网 发布:48口网络交换机 编辑:程序博客网 时间:2024/05/17 07:53
2016年8月9日工作日志
今天遇到一个很坑的bug,测试提交了一个页面不显示的bug,把自己本地项目进行集成测试的时候报了elException.java.lang.Nullpointerexception,于是开始在jsp排查空值。
发现在jsp中${data.bulidArea}为罪魁祸首,开始找solr中的数据,但是solr中是有数据的,页面的数据是从另一个数据库中查出来的,于是开始排查其他可能。
<c:if test="${empty data.buildArea}"></c:if>//即使直接调用显示也会报nullpointer${empty data.buildArea}
//data实体类public Class data(){ private Double bulidArea; public void setBulidArea(double bulidArea){ this.bulidArea=bulidArea; } public double getBulidArea(){ return this.bulidArea; }}
由于bulidArea为Double封装类型(Double的缺省值为null),但是它的get、set方法都为java基本类型double(double的缺省值为0),从数据库中取出的为空值,最终bulidArea也就无法进行非空判断。
解决方法:1、将get、set方法的double改为Double
2、将变量的类型改为double,此时在页面对变量进行非0验证
备注:解决这个bug最大的难点在于不清楚项目流程,不了解数据来源
0 0
- 基本数据类型double和封装类型Double引起的bug
- JAVA中基本数据类型和封装类的区别Integer和Double为例
- 基本数据类型操作三:float和double变量的赋值
- double类型的一个小bug
- 基本数据类型 Int、Double、Float
- Double和double的区别
- double和Double的区别
- double误差引起的缺陷
- JAVA基本数据类型范围和float、double精度问题
- 时间和double类型数据的格式化
- matlab的double和single类型
- double类型的输入和输出
- mysql float和double类型的区别
- float和double类型的内存分布
- double类型的讨论
- double类型的运算
- double类型的计算
- 基本数据类型操作二:float与double的范围和精度
- Struts1的执行过程
- Hibernate映射之实体映射<转载>
- hibernate一级缓存和二级缓存的区别
- Increase Charisma Points
- Cheapest Palindrome(区间dp)
- 基本数据类型double和封装类型Double引起的bug
- HTML5新标签 | 说明
- 堆栈和队列的实现
- [LeetCode]--295. Find Median from Data Stream(Max-Heap & Min-Heap)
- Android 内存泄漏总结(转)
- 从省赛回来之后到暑假集训和自己感受
- Delphi XE8移动应用开发中Android权限设置
- BZOJ-4034- [HAOI2015]T2-树链剖分+线段树
- 使用windeployqt.exe进行依赖查找打包