java.lang.NullPointerException 是什么意思啊 该如何处理

发布网友 发布时间:2022-04-23 06:25

我来回答

5个回答

热心网友 时间:2022-05-07 01:36

这个是空指针异常,空指针的解决办法: 重点关注报错发生的所在行,通过空指针异常产生的两条主要原因诊断具体的错误。同时为了避免空指针的发生,最好在做判断处理时将“null”或者空值放于设定的值之前。  

在Java中一般报空指针异常的原因有以下几种: 

1、字符串变量未初始化; 

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

List lt;会报错 

List lt = new ArrayList();则不会报错了 

3、当一个对象的值为空时,你没有判断为空的情况。你可以试着把下面的代码前加一行代码: 
if(rb!=null && rb!="") 

改成: 

if(rb==null); 

if(rb!==null&&rb!="") 或者if((“”).equals(rb)) 

扩展资料:

空指针异常的报错

root cause

java.lang.NullPointerException

Dao.BookInfor.ImFromClassification(BookInfor.java:31

org.apache.jsp.front.home_jsp._jspService(home_jsp.java:120)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)

javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

热心网友 时间:2022-05-07 02:54

java.lang.NullPointerException是java常见的异常, 中文常常翻译为 空指针异常.

触发条件: 当一个对象为空(null)时,  试图调用对象的方法, 或者访问或者修改对象的属性时 ,就会抛出空指针异常. 

解决该异常的办法: 

尽量避免使用为空的对象,

或者先判断是否为null 然后再使用,

或者使用try catch 捕获到该异常后处理这个异常. 

参考代码

错误示范

public class Demo {
public static void main(String[] args) {
String str = null;
if(str.equals("ABC")) { //str为空,调用str的equals方法, 就会报错
System.out.println("字符串的内容是ABC");
}else {
System.out.println("字符串的内容不是ABC");
}
}
}

解决示范1

public class Demo {
public static void main(String[] args) {
String str = null;
if("ABC".equals(str)) { //使用"ABC"这个不为null的对象,调用他的equals方法
System.out.println("字符串的内容是ABC");
}else {
System.out.println("字符串的内容不是ABC");
}
}
}

示范2: 先判断是否为空, 不为空, 才调用方法和访问属性

public class Demo {
static String str1;
public static void main(String[] args) {
if(str1!=null) {//先判断它不为空,才调用 它的length方法
System.out.println(str1.length());
}else {
System.out.println("str1对象为空");
}
}
}

示范3

import java.util.Scanner;

public class Demo {
static String str1;
public static void main(String[] args) {
try {
System.out.println(str1.length());
}catch(NullPointerException e) {
System.out.println("str1为空...请赋值..");
Scanner sc  = new Scanner(System.in);
str1 = sc.nextLine();
System.out.println("str1的长度为:"+str1.length());
}
}
}

//str1为空...请赋值..
//ABC
//str1的长度为:3

热心网友 时间:2022-05-07 04:29

java异常分两种,一种是运行时异常,一种是编译时异常,你这个属于运行时异常,是编译器无法预知的异常,比如你定义了一个引用变量String a,但是你确没有用new关键字去实例化这个变量,但是你又调用这个a的方法,所以会报这个空指针异常,解决办法有两种
一,在调用这个变量是判断先if(null!=a)
二,try..catch捕获异常可以让程序继续执行
个人建议第一种,因为第二种没有什么实际意义,捕获了 还是不能避免你没实例化的事实。

热心网友 时间:2022-05-07 06:20

因为你使用了没有初始化的变量或者没有实例化的对象!

热心网友 时间:2022-05-07 08:28

空指针异常,看看是不是没初始化之类的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com