Java。郎。NullPointeException出现了对异常 方案的三种解决方案。本章解释了对该技术的理解和使用。下面是详细内容,有需要的朋友可以参考一下。
1.字符串变量未初始化。
2.接口类型的对象不是用特定的类初始化的,例如:
Map map //将报告错误。
Map Map = new Map();//不会报告任何错误。
3.当一个对象的值为空时,你不会判断它为空。
4.字符串和单词的比较。单词可以是字符串或枚举的元素,并且异常将如下所示
String str = null
if(str . equals(" Test "){ undefined
//这里的代码不会被触发,因为会抛出Java . lang . nullpointerexception异常。
}
5.最好使用String.valueOf()方法,而不是toString()
当程序代码需要对象的字符串表示形式时,请避免使用对象的toString方法。如果对象的引用等于null,将抛出NullPointerException。使用静态String.valueOf方法,该方法不会抛出任何异常并输出“null”
6.类声明为类型,默认class = null这样,在类中调用方法时,系统只能给你一个空指针异常,实例化就行了:Class = new Class();
7.返回null。方法的返回值不应定义为一般类型,而应定义为数组。这样,如果要返回null,可以避免很多不必要的NullPointerException
调用对象方法时:
比如字符串处理常用的replace方法,数组的length方法,map的size方法等等;
str.replace(…)
如果str为空,则存在空指针。
要判断一个str是否等于“test”,你直接str。等于(“测试”)
还有map.forEach()、list.stream()、object.equals()、str.toString()…
类似的还有很多,太多了。
一些总结:
在调用object方法之前,确定对象是否为空(无论是实体、变量、常量、映射、列表还是其他对象)。
在判断对象是否为空时,注意不要直接调用空判断方法,空判断方法也是一个方法。
尽量不要使用str.toString(),而是使用String.valueOf()
比如你要判断一个str是否等于“test”,而不是str。等于(“测试”),可以“测试”。依次等于(str)。
部分物体判断技巧:
StringUtils.isNotBlank(str)
StringUtils.isNotEmpty(str)
反对!=空