荐 java程序员最常见的空指针异常java.lang.NullPointerException

2022-08-09,,,,

前言

对于空指针异常来说java程序再熟悉不过,但是对于见到这类的异常,说明我们的系统还不够完善,RunTimeException:运行时异常,又称不受检查异常,不受检查!
不受检查!!不受检查!!!重要的事情说三遍,因为不受检查,所以在代码中可能会有RunTimeException时Java编译检查时不会告诉你有这个异常,但是在实际运行代码时则会暴露出来,比如经典的1/0,空指针等。

官网api解释

public class NullPointerException
extends RuntimeException当应用程序尝试在需要对象的情况下使用null时抛出。 这些包括:
调用一个null对象的实例方法。
访问或修改null对象的字段。
取null的长度,好像是一个数组。
访问或修改的时隙null就好像它是一个数组。
投掷null好像是一个Throwable价值。
应用程序应该抛出此类的实例以指示null对象的其他非法使用。 NullPointerException对象可以由虚拟机构建,就像suppression were disabled and/or the stack trace was not writable一样 。

举例说明

我们创建一个测试类,然后创建一个判断字符串是否为空的方法,如下

package com.ssm.demo;

public class NullPointerExceptionTest {

	public boolean testNullPointerException(String agr) {
		
		if(agr.equals("")&&agr!=null) {
			return true;
		}else {
			return false;
		}
	}
	
	public static void main(String[] args) {
		boolean isTure=new NullPointerExceptionTest().testNullPointerException(null);
	}
}

运行后抛出空指针异常,如下图:

思考

如何避免这类问题的,首先我们要定位到报空指针的代码位置,分析上面的问题,是到了

agr.equals("")

报的空指针,那么我们考虑过agr!=null会报空指针么,改一下试试

可以看出来不会报空指针,也跟官网介绍的一毛一样,调用空对象的方法或属性才会报空指针,那么对于上面的判断字符串为空且不为空字符串时怎么办呢,我们可以这样修改,
一万年也不会报空指针了哈哈

"".equals(agr)


-END-

如果你喜欢我的分享,欢迎关注微信公众号 java学长分享技术干货!
悄悄告诉你免费赠送重磅互联网架构师教程,提升职场技术水平!
需要java1.8 中文api文档的,关注公众号,回复“java中文”即可领取!

本文地址:https://blog.csdn.net/jiarui_mama/article/details/107159514

《荐 java程序员最常见的空指针异常java.lang.NullPointerException.doc》

下载本文的Word格式文档,以方便收藏与打印。