java.lang.NullPointerException空指针异常
NPE空指针异常出现的原因是什么?
空指针异常应该是初学编程的同学遇到最多的一种异常,由于缺少编程经验,对引用数据类型的数据使用不恰当导致的异常。
空指针就是空引用,java空指针异常就是引用变量本身为null,却调用了null的方法,这个时候就会出现空指针异常。
接下来给大家演示一下空指针异常,以及如何避免空指针的出现
创建一个java类Student
package com.entity; import java.io.Serializable; /** * @descrption:学生实体类 * @author: lizhilun * */ public class Student implements Serializable{ private static final long serialVersionUID = 1L; private Integer id;//主键 private String name;//姓名 private Integer age;//年龄 public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } } |
创建一个测试类
package com.exception; import com.entity.Student; /** * @descrption:空指针异常演示 * @author: lizhilun * */ public class NPEDemo { static String str;//未实例化字符串str static Student stu=null;//未实例化对象 public static void main(String[] args) { System.out.println(stu.getName()); System.out.println(str.equals("")); } } |
我们很明显的看到不管是对象还是字符串,只要是null然后调用其方法都将导致空指针异常的出现。
如何解决空指针异常呢?
接下来对代码进行改造
package com.exception; import com.entity.Student; /** * @descrption:空指针异常演示 * @author: lizhilun * */ public class NPEDemo { static String str;//未实例化字符串str static Student stu=null;//未实例化对象 public static void main(String[] args) { stu=new Student();//实例化Student对象 stu.setName("高圆圆"); System.out.println(stu.getName()); if(str!=null) {//调用方法之前先判断是否为null,如果不为null再执行其方法 System.out.println(str.equals("")); } } } |
如果我们确保引用变量不为null的情况下再调用其方法,如果确定不了需要在调用其方法之前先判断是否为null,如果不为null再调用,不过为了程序的健壮性建议大家在调用方法之前先判断一下对象是否为空,这样就能很好的规避空指针异常了。