网站首页 > java教程 正文
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再调用,不过为了程序的健壮性建议大家在调用方法之前先判断一下对象是否为空,这样就能很好的规避空指针异常了。
猜你喜欢
- 2024-10-26 Java中字符串填充零和去零的常用方法
- 2024-10-26 java OOM内存泄漏原因及解决方法(java常见内存泄漏原因)
- 2024-10-26 高级Java开发 面试必备的JVM知识点(一)
- 2024-10-26 解决ServletException: java.lang.NoSuchMethodError
- 2024-10-26 干货:日常Java报错整理(java的错误异常怎么处理)
- 2024-10-26 SpringBoot执行jar报错java.lang.OutOfMemoryError_指定内存大小
- 2024-10-26 Springboot2.0学习6 使用配置文件
- 2024-10-26 Java类型之间的转换(java类型之间的转换是什么)
- 2024-10-26 mybatis中报出java.lang.UnsupportedOperationException错误
- 2024-10-26 JavaEE 项目常见错误汇总(进一步补充)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)