大家好,欢迎来到IT知识分享网。
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再调用,不过为了程序的健壮性建议大家在调用方法之前先判断一下对象是否为空,这样就能很好的规避空指针异常了。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/13097.html