首页 > 编程语言 >解决java.lang.NullPointerException报错以及分析出现的几种原因

解决java.lang.NullPointerException报错以及分析出现的几种原因

时间:2023-01-07 11:11:06浏览次数:43  
标签:lang java String class 报错 str null NullPointerException

1、字符串变量未初始化

2、接口类型的对象没有用具体的类初始化,比如:

Map map // 会报错

Map map = new Map(); //则不会报错了

3、当一个对象的值为空时,你没有判断为空的情况。

4、字符串与文字的比较,文字可以是一个字符串或Enum的元素,如下会出现异常

String str = null;

if(str.equals(“Test”)){undefined

//这里的代码将不会被触发,因为会抛出java.lang.NullPointerException异常。

}

5、优先使用String.valueOf()方法代替toString()

当程序代码需要对象的字符串表示形式时,请避免使用该对象的toString方法。如果你的对象的引用等于null,NullPointerException则会抛出,使用静态String.valueOf方法,该方法不会抛出任何异常并打印"null"

6、class被声明了类型, 默认 class = null; 这样在调用class中方法的时候系统只能给你个空指针异常, 给其实例化就好了:class = new Class();

7、返回null,方法的返回值不要定义成为一般的类型,而是用数组。这样如果想要返回null的时候就能避免许多不必要的NullPointerException

 

NullPointerExceptionRuntimeException派生出来,是一个运行时异常。其意指可能会在运行的时候才会被抛出,一个变量是null,及只有其名,没有实值内容,也没分配内存,当你要去取他的长度,对他进行操作就会出现NullPointException,所以声明变量时最好给它分配好内存空间,给予赋值,例如拿该变量与一个值比较时,要么先做好该异常的处理要么给它进行判断先: if (str !=null && str “”){ …}

判断一个String的实例s是否等于“a”时,不要写成s.equals(“a”),这样容易抛NullPointerException,而写成"a".equals(s)就可以避免这个问题,不过对变量先进行判空后再进行操作更好,尽量避免返回null,方法的返回值不要定义成为一般的类型,用数组。这样如果想要返回null的时候,就返回一个没有元素的数组。就能避免许多不必要的NullPointerException

标签:lang,java,String,class,报错,str,null,NullPointerException
From: https://www.cnblogs.com/zyf531/p/17032268.html

相关文章

  • 36_Java中的枚举
    Java中的枚举枚举概述​ 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。举例:一周只有7天,一年只有12个月等​ 回想单列设计模式:单例类是一个......
  • 35_Java中的设计模式简单了解
    Java中的设计模式注意:只是简单了解设计模式(Designpattern)​ 是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用......
  • 37_Java中的浮点数精确运算
    java中的BigDemcimal用于小数的精确运算构造方法:​ BigDecimal(Stringval)四则运算:​ add(BigDecimalb):加法​ subtract(BigDecimalb):减法​ multiply......
  • 38_Java中的注解
    java中的注解1、注解概述@Ovrride:用来修饰方法,表示该方法是重写父类的方法,如果不是,就会报错注解(Annotation):也叫元数据,一种代码级别的说明,它是JDK1.5及以后版本引......
  • 39_Java中的单元测试
    单元测试单元测试概述:​ 在程序中,一个单元可以时一个完整的模块,但它通常是一个单独的方法或者程序​ 在面向对象的编程中,一个单元通常是整个界面,例如类,但可能是......
  • 34_Java8 日期API
    Java8日期APIDate如果不格式化;输出的日期可读性差;而Java8的时间类直接输出可读性好Date存在线程安全问题;而Java8的时间类都是线程安全的JDK8新增日期类:​ Loc......
  • JAVA的方法
    什么是方法方法是语句的集合,他们在一起执行一个功能。方法是解决问题的步骤的有序组合。方法包含于类或对象中。方法在程序中被创建,在其他地方被引用。方法的组......
  • 用Java方法和循坏的计算器
    importjava.util.Scanner;publicclassPractise{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);//创建一个对象用......
  • 认识 Java 中的 StringBuilder 类
    Stringstr="hello"; System.out.println(str); System.out.println(str+"world"); }输出的结果是:hellohelloworld从运行结果中我们可以看到,程序运行时会额外创建......
  • java基于ssm的图书管理系统图书借阅管理网站图书管理网站源码
    简介本项目是图书借阅管理系统,主要实现了对图书的管理和借阅。演示视频https://www.bilibili.com/video/BV14p4y1H7GQ/?share_source=copy_web&vd_source=ed0f04fbb713......