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

 我来答
大野瘦子
高粉答主

2018-12-08 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:32.3万
展开全部

这个是空指针异常,空指针的解决办法: 重点关注报错发生的所在行,通过空指针异常产生的两条主要原因诊断具体的错误。同时为了避免空指针的发生,最好在做判断处理时将“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)

雪飞潇潇
2017-10-06 · TA获得超过6273个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:838万
展开全部

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

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

解决该异常的办法: 

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

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

  3. 或者使用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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huwenfeng8989
推荐于2017-05-23
知道答主
回答量:18
采纳率:0%
帮助的人:7.2万
展开全部
java异常分两种,一种是运行时异常,一种是编译时异常,你这个属于运行时异常,是编译器无法预知的异常,比如你定义了一个引用变量String a,但是你确没有用new关键字去实例化这个变量,但是你又调用这个a的方法,所以会报这个空指针异常,解决办法有两种
一,在调用这个变量是判断先if(null!=a)
二,try..catch捕获异常可以让程序继续执行
个人建议第一种,因为第二种没有什么实际意义,捕获了 还是不能避免你没实例化的事实。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mxyue0208
2013-01-09 · TA获得超过417个赞
知道小有建树答主
回答量:348
采纳率:0%
帮助的人:122万
展开全部
因为你使用了没有初始化的变量或者没有实例化的对象!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9455f49
2013-01-09 · TA获得超过165个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:96.8万
展开全部
空指针异常,看看是不是没初始化之类的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式