Java空指针异常:java.lang.NullPointException原因

本文详细解释了Java中空指针异常的原因及其避免方法。通过具体的代码示例,介绍了如何正确地处理对象为空的情况,避免运行时错误。强调了在使用对象前进行有效性检查的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java空指针异常在工作中经常看到,之前我不是很懂这个概念以为如果某个对象没初始化就会报错结果不是,我通过debug打断点发现了具体原因和解决方法。

原因:

  1. 在excel上传解析的时候发现,如果没有初始化对象,里面就是null的(没有分配空间),这个时候它是不会报空指针异常的。
  2. 如果对象是空的,然后这个时候你通过这个对象去调任何方法都会报空指针异常。
  3. 如果你调的方法入参是这个空对象,这个时候不会报空指针异常(具体得看方法内部逻辑)。

解决方法:

  1. 如果是空对象调方法入参为非空参数,例如
	String s = null;
	s.equals("test");

可以改成

	"test".equals(s);
  1. 可以用各种工具类来实现想要的功能,例如
	String s = null;
	StringUtils.isEmpty(s);

常见的空指针异常,判断该List长度是否为0且不为空:

    List<String> list = null;
    if (list.size() > 0 && list != null){
        list.add("test");
    }

结果会报空指针异常,应该先进行list本身的判断,再进行长度判断:

    List<String> list = null;
    //先判断对象是否为空,如果为空则为false,就不会进行后面的判断
    if (list != null && list.size() > 0){
        list.add("test");
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值