遇到的 java.lang.NullPointerException 报错收藏

版权声明:本文为博主原创文章,转载请注明作者和出处,如有错误,望不吝赐教。 https://blog.csdn.net/weixin_41888813/article/details/84562033

NullPointerException简介

  1. 所谓的指针,就是java中的对象的引用。比如String s;这个s就是指针。 
  2. 所谓的空指针,就是指针的内容为空,比如上面的s,如果令它指向null,就是空指针。
  3. 所谓的空指针异常,就是一个指针是空指针,你还要去操作它,既然它指向的是空对象,它就不能使用这个对象的方法。比如上面的s假如为null,你还要用s的方法,比如s.equals( String x);那么就会产生空指针异常。

目录

 

1,String类型

2,接口类型

3,当一个对象的属性的值为空

再补充下说明:


1,String类型

 String类型的对象可以做如下判断

if ( rb != null && !"".equals(rb)){
    ......
}

当然还可以多做一个判断,是否不为空字符串

if( rb != null && !"".equals(rb.trim())) {
    ......
}

代码段2: 

一个小技巧:如果要把某个方法的返回值与常量做比较,把常量放在前面,可以避免调用null对象的equals方法。譬如:  

扫描二维码关注公众号,回复: 4261615 查看本文章
if ("root".equals(userName)) {
    ....
} 

即使userName对象返回了null对象,这里也不会有空指针异常,可以照常运转。  


2,接口类型

接口类型的对象没有用具体的类初始化,比如:
List lt; 会报错
List lt = new ArrayList(); 则不会报错了

  • 在空对象引用,调用接口方法:java.util.List.size()


 


3,当一个对象的属性的值为空


再补充下说明:

java语言里面都是通过一个个类协同工作来实现各种功能的。

例如你定义好了一个类,直接通过类名定义一个对象

Class class;

此时,这个class被声明了类型, 默认 class = null; 这样在调用class.xxxx()的时候系统只能给你个空指针异常。

想不要空指针那么就给class做个赋值操作就好了,例如 class = new Class();

实际如下:代码段4: 

public static void main(String args[]){ 
    Person p=null; 
    p.setName("张三"); 
    System.out.println(p.getName()); 
} 

分析:声明一个Person对象,并打印出该对象的中的Name名字。 
说明:这个时候你的p就出现空指针异常,因为你只是声明了这个Person类型的对象并没有创建对象,所以它的堆里面没有地址引用,切忌你要用对象掉用方法的时候一定要创建对象


参考来源于:

https://blog.csdn.net/zwhfyy/article/details/885588/ 

https://blog.csdn.net/qing101hua/article/details/45459161

猜你喜欢

转载自blog.csdn.net/weixin_41888813/article/details/84562033