java.lang.nullpointerexception 怎么解决

   更新日期:2024.04.17

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



你使用了空的指针。在java中虽然号称抛弃了C++中不安全的指针,但其实他所有的东西你都可以理解为指针。这种情况一般发生在你使用了一个对象实例(其实是一个类指针)来调用它的成员函数,但这个实例却为null。
建议先检查一下你的SQL是不是有问题,然后看你的逻辑是不是有问题
主要有以下几种原因:
1、使用了未初始化的变量(虽然已经声明)
2、使用了未初始化的对象(虽然已经声明)
3,使用了关键字或已存在的类名作变量对象方法或类名。

一般报java.lang.NullPointerException的原因有以下几种:
1字符串变量未初始化;
2接口类型的对象没有用具体的类初始化,比如:
List lt;会报错
List lt = new ArrayList();则不会报错了
3当一个对象的值为空时,你没有判断为空的情况。
你可以试着把下面的代码前加一行代码:
if(rb!=null && rb!="")
改成:
if(rb==null);
if(rb!==null&&rb!="")


一般遇到异常错误很有用的就是debug
既然是空指针错误
你就在debug的时候看哪个对象是null
是用的Eclipse吗?
先双击代码最左边的line
右击你的项目 debug as -> java Application -> yes
按F5前进,一行一样的执行代码。

另外 debug的使用是一个程序员是否专业的重要指标,可以好好研究一些debug的功能。

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


java.lang.nullpointerexception在java中是空指针异常,主要跟与对象的操作相关。
比如有如下代码:

String userName = request.getParameter("username");
If (userName.equals("root")) {
//逻辑处理
}
本代码功能是:检测用户提供的用户名,如果是用户名称为"root"的用户时,就执行一些特别的操作。
说明:
在代码段中,如果有用户没有提供表单域"username"的值时,字符串对象userName为null值,不能够将一个null的对象与另一个对象直接比较,就会抛出(java.lang.NullPointerException)空指针错误。

为了确保进行操作或引用的对象非空,假若我们要对某对象进行操作或引用,我们首先去检查该对象是否已经实例化且不为空;并且在系统中加入针对对象为空时情况的处理。
如:采用String对象保存用户提交的结果;在如果涉及对象的操作时,先检测其是否为空后,检查到对象为空后,可再选择进行以下任一种处理方式:

处理方式 1) 检查到对象为空时,设置对象值为空字符串或一个默认值;
处理方式 2) 检测到对象为空时,根本不执行某操作,直接跳转到其他处理中。
处理方式 3) 检查到对象为空时,提示用户操作有错误。

  • 18271394918 :Exception in thread "main" java.lang.NullPointerException是什么意思...
    宰荆狭1670 :答:1、NullPointerException是java应用程序中最常见的一种异常,空指针异常 2、空指针异常是一种运行时异常,发生在调用对象的方法或者属性的时候。3、当对象为null时,调用其任何方法均会报NullPointerException 4、最好的解决...
  • 18271394918 :十万火急,java.lang.NullPointerException的问题
    宰荆狭1670 :答:你的程序多半是在这里出错了。type.setType_id(rs.getLong("type_id"));type.setType_name(rs.getString("type_name"));type.setType_content(rs.getString("type_content"));某个rs.getString()为null,而你却...
  • 18271394918 :怎么解决java.lang.NullPointerException
    宰荆狭1670 :答:出现这个问题一般是某个对象没有实例化,后面又用到了这个对象,就会出现这个异常.
  • 18271394918 :java中,参数传递,为什么会出现java.lang.NullPointerException?
    宰荆狭1670 :答:据我分析有可能是,传进参没有传进去或是传的null进去的。你可以打印测试或用断点来调试
  • 18271394918 :出现java.lang.nullPointException和org.apache.jasper.jasperExceptio...
    宰荆狭1670 :答:你没有处理值为null的情况,具体看login_jsp.java 第64行 ———你最好把整个Java代码贴一下,这样看不出来。___你这里是Login.java,但是报错的地方是login_jsp.java 这个java是根据login.jsp生成的,如果你用的web容...
  • 18271394918 :ava.lang.nullpointerexception
    宰荆狭1670 :答:怎么处理ava.lang.NullPointerEx... 1 2013-09-20 我编写完一个android程序,在编译时出现ava.lang... 2009-05-20 java.lang.nullpointerexception... 2018-05-23 java JDBC连接数据库 java.lang.NullP... 22 2013-04-12...
  • 18271394918 :...default threw exception java.lang.NullPointerException
    宰荆狭1670 :答:java.lang.NullPointerException at com.platform.manage.action.ChildAction.childList(ChildAction.java:44)这个提示是说,出现了空指针异常。也就是说你有个变量,得到的值是空,你却调用了它的方法。后面的异常是说,你...
  • 18271394918 :java.lang.NullPointerException
    宰荆狭1670 :答://你添加好多个,其实效果只有一个,就是是最后一个 //要想添加多个,请首先用JPanel(mainp)作为JFrame的 //内容组件,然后再把你要的那个JPanel数组添加进mainp,//就行了 //下面你要的那个效果代码 import java....
  • 18271394918 :java的各种异常
    宰荆狭1670 :答:java.lang.NoSuchFieldException属性不存在异常。当访问某个类的不存在的属性时抛出该异常。java.lang.NoSuchMethodException方法不存在异常。当访问某个类的不存在的方法时抛出该异常。java.lang.NullPointerException空指针异常。当应用试图...
  • 18271394918 :java.lang.NullPointerException
    宰荆狭1670 :答:主要是数值初始化的问题,改进后的代码如下,请lz仔细对照改过的部分。public class SPN { public static void main(String[] args) { /* set Ptag */ SPN S =new SPN();Ptag[] P = new Ptag[5];for(int i=...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网