`
javabkb
  • 浏览: 54650 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

两个空指针的错

    博客分类:
  • J2SE
 
阅读更多
   前几天做项目重构的时候,莫名奇妙地发现两个空指针错误:
   第1个,debug好多次之后发现基本类型引用到空的对象的时候会直接报空指针错误。业务代码就不贴了,来看一个小的测试例子吧:
  
 Integer i = null; int l = i; 

运行的时候会直接报空指针,原因也很简单基础类型不能直接引用null,所以直接改成int l = i == null ? 0 : i;
   第2个,数据库是oracle,ORM用的是ibatis,执行这条语句的时候select sum(..) from Table where .. ,若where条件未查询出符合条件的记录,那么返回null而不是返回0。所以仍然需要判断取出来的结果是否为null,判断若为null的话返回0.

   总结:越下层的代码越要执行保护性判断,特别是对于容易被忽略的基础类型,不能不负责任地直接传到上一层。
  
0
2
分享到:
评论

相关推荐

    Dubbo空指针问题测试代码.zip

    在Java编程中,当程序试图访问或操作一个null引用的对象时,就会抛出空指针异常。在Dubbo的上下文中,NPE可能出现在服务调用、参数传递、服务注册与发现等环节。由于Dubbo是基于接口的RPC框架,因此服务提供者和服务...

    防止手机获取相片空指针的工具类

    综上所述,`MiPictureHelper`是一个针对小米手机相册获取照片空指针问题的解决方案,它包含了权限检查、Intent创建、结果处理、异常控制等多个方面,以确保在不同设备和系统版本下都能稳定、安全地获取用户选择的...

    【C语言】两个指针的坑

    指针在使用不当的情况下非常容易出现问题,尤其是内存越界、野指针(未初始化或者已经释放的指针)、空指针访问等,都会造成程序的运行时错误,甚至导致程序崩溃(core dump)。以下从给出的内容中提取知识点并详细...

    根据带空指针的先序遍历结果建立二叉树

    1. **二叉树**: 是一种树形结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。 2. **先序遍历**: 是一种遍历二叉树的方式,其顺序为“根节点→左子树→右子树”。 #### 输入格式 题目要求输入一个...

    Java字符串比较方法equals的空指针异常的解决

    Java字符串比较方法equals的空指针异常的解决 Java字符串比较方法中,equals()方法是一个非常重要的方法,用于比较两个字符串是否相等。但是,在使用equals()方法时,需要注意避免空指针异常。空指针异常是指在Java...

    jsp中调用dao的getHibernateTemplate()时,报空指针

    "JSP 中调用 DAO 的 getHibernateTemplate() 时报空指针异常的解决方法" 在整合 SSH 框架时,经常会遇到 JSP 中调用 DAO 的 getHibernateTemplate() 时报空指针异常的错误。本文将讲解这个问题的原因和解决方法。 ...

    Sqoop空指针异常需要的jar包.rar

    Sqoop从MySQL导数据到HDFS上,如果报错空指针异常,需要的jar包。正常情况只要安装java-json.jar就可以。如果不行就都安装上。如果你用的是阿里云的EMR,安装完之后还报错的话,需求确认你的jar包中是否含有hive开头...

    软件编程低级错误空指针PPT学习教案.pptx

    空指针通常表示一个没有指向任何对象的指针,试图通过空指针访问内存会导致未定义行为,如程序崩溃、数据丢失或错误结果。在软件开发中,正确处理空指针至关重要。 2. **内存管理**:C++中的`new`运算符用于动态...

    详解Kotlin的空指针处理

    调用方法存在一个问题,就是在变量为 null 的情况下,会直接返回 null,仍然存在空指针的隐患。解决这个问题可以使用 Elvis 操作符 ?:,例如:`var le: Int = helloB?.length ?: 0`,当 ?: 左边非空返回左边的值,...

    C++类的空指针调用成员函数的代码

    首先,我们定义了一个`Student`类,其中包括一个私有成员变量`age`和两个公开的成员函数`getAge()`。然后,我们在`main`函数中实例化了`Student`类,并调用了`getAge()`成员函数。 在汇编代码中,我们可以看到,...

    spring static静态方法里面注入bean空指针解决

    在Spring框架中,静态方法内部注入Bean导致空指针异常是一个常见的问题,特别是在处理较旧的项目时。这里我们分析两种解决这个问题的方法。 首先,让我们深入理解问题的原因。在Spring中,`@Autowired`注解用于自动...

    Java程序中数组越界和空指针错误的静态分析.pdf

    - 空指针异常(`NullPointerException`)发生在试图访问或操作一个值为`null`的对象引用时。Java中的对象引用可能为`null`,表示没有指向任何对象。如果在未验证引用是否为`null`的情况下直接调用方法或访问字段,...

    两个链表求交集(链表基础练习)

    1. 处理空链表的情况,即两个链表没有交集。 2. 检查链表是否有环,因为有环的链表求交集问题需要特殊处理。 3. 在创建新的交集链表时,要注意不要改变原始链表的结构。 在编写代码时,应注重代码的清晰性和可读性...

    PTA 两个有序链表序列的合并

    4. 重复步骤2和3,直到两个链表都为空。此时`mergedList`就是合并后的有序链表。 在实现这个算法时,可以使用递归或迭代的方式。递归方法直观且代码简洁,但可能面临栈溢出的风险,尤其是当链表非常长时。迭代方法...

    两个栈空间共享,栈满打印

    在实验设计过程中,首先进行了栈的初始化,设置两个栈顶指针`top1`和`top2`。接着,程序读取用户输入的整数,根据数字的奇偶性决定将其压入哪个栈。当`top1+1==top2`时,判断为栈满,此时会调用`pop()`函数打印栈...

    浅谈java异常处理之空指针异常

    Java异常处理是编程中至关重要的一个环节,特别是对于空指针异常(NullPointerException),它是Java开发者在实际编程中经常遇到的问题。本文将深入探讨Java异常处理机制,并重点解析空指针异常的原因、解决方法以及...

    数据结构期末试题11

    3. 六叉链表表示30个结点的六叉树,每个结点有六个子结点,但只有最后一个子结点可以链接其他结点,所以空指针数量为30 * (6 - 1) = 150个。 4. 完全二叉树的性质决定了度为0的结点(叶子结点)数量与度为2的结点...

    指针,指针类型,指针函数

    例如,一个交换两个整数的函数可以接受两个整型指针参数,而不是实际的整数值。 ### 6. 指针数组和数组指针 在C/C++中,可以创建一个指针数组,其中每个元素都是一个指针,也可以有一个数组指针,它指向整个数组的...

    C++指针应用的四大误区

    #### 二、操作空指针 **定义:** 在C++中,`NULL`(或在现代C++中使用`nullptr`)表示一个未指向任何有效内存地址的指针。对空指针进行解引用会导致程序崩溃。 **误区1:** **直接使用未初始化的指针** - **问题...

    c语言指针,指针与变量,指针与指针

    例如,`void swap(int *a, int *b)`函数可以通过交换`*a`和`*b`的值来实现两个整数的交换。此外,函数返回指针也是常见的做法,用于返回动态分配的内存或结构体等。 字符串在C语言中被视为字符数组,因此,指针也...

Global site tag (gtag.js) - Google Analytics