首页 > 编程知识 正文

包含javalangnullpointerexception的词条

时间:2023-12-27 22:27:15 阅读:325780 作者:QEQO

本文目录一览:

如何查找java.lang.NullPointerException的原因

最近一段时间老遇到NullPointerException这个异常,于是上网找了一些关于这方面的资料,也解决了问题,在这特意做个总结:

一般报java.lang.NullPointerException的原因有以下几种:

·1.字符串变量未初始化;

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

List lt; 会报错

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

·3.当一个对象的值为空时,你没有判断为空的情况。

之前获取类路径下的资源的时候就报了这个错(当然这个也是因为我不太熟悉用Class和ClassLoader来获取类路径下的资源。)

java.lang.NullPointerException

at java.io.Reader.init(Reader.java:61)

at java.io.InputStreamReader.init(InputStreamReader.java:55)

at org.apache.commons.io.IOUtils.copy(IOUtils.java:1049)

at org.apache.commons.io.IOUtils.toString(IOUtils.java:359)

at in.itcast.servlet.Eservlet.doGet(Eservlet.java:33)

我的代码最初是这样的:(test.txt和当前这个类在同一个目录下)

[java] view plain copy

span style="white-space:pre" /spanClassLoader c = this.getClass().getClassLoader();

InputStream in = c.getResourceAsStream("test.txt");

String s = IOUtils.toString(in);

System.out.println(s);

出了异常之后,当时也找不到是哪里出现空指针了,在网上进行了一顿摸索之后,原来这样可以查找出某个对象是否为空,而且通常都要加上这个判断:

[java] view plain copy

span style="white-space:pre" /spanClassLoader c = this.getClass().getClassLoader();

InputStream in = c.getResourceAsStream("test.txt");

if(in!=null){

String s = IOUtils.toString(in);

System.out.println(s);

}else{

System.out.println("null");

}

于是我找到了这个错误所在,原来是路径写错了。。。

Class类的getResourceAsStream(Stringpath):

1.路径以“/”开头,相对classes路径;

2.路径不以“/”开头,相对当前class文件所有路径,例如在cn.itcast.servlet.MyServlet中执行,那么相对/classes/cn/itcast/servlet/路径;

ClassLoader类的getResourceAsStream(Stringpath):

相对classes路径;

java.lang.nullpointerexception是什么意思

public class NullPointerExceptionextends RuntimeException/dt当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括: 调用 null 对象的实例方法。 访问或修改 null 对象的字段。 将 null 作为一个数组,获得其长度。 将 null 作为一个数组,访问或修改其时间片。 将 null 作为 Throwable 值抛出。 应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。

java.lang.nullpointerexception怎么解决

首先找到发生异常的那行,然后寻找逐步向上找源头。如果没有必要查找源头,可以直接绕过它。譬如:

1,ListString books = BooKDAO.findAll();

2,int size = books.size();

如果第2行发生空指针异常了,知道books肯定为null了,这时查找BookDAO.的findAll方法,如果findAll()方法又调用了其他的方法,可以继续查下去。如果没有业务需要,可以直接写成:

ListString books = BooKDAO.findAll();

int size = 0;

if(books != null){

size = books.size();

}

或者

ListString books = BooKDAO.findAll();

int size = 0;

try{

size = books.size();

}catch(NullpointerException){

size = 0;或者不写或者打印错误

}

扩展资料

最重要的类是Object(它是类层次结构的根)和 Class(它的实例表示正在运行的应用程序中的类)。把基本类型的值当成一个对象来表示通常很有必要。包装器类 Boolean、Character、Integer、Long、Float 和 Double 就是用于这个目的。

类 Math 提供了常用的数学函数,比如正弦、余弦和平方根。类似地,类 String 和 StringBuffer 提供了常用的字符串操作。

类 ClassLoader、Process、Runtime、SecurityManager 和 System 提供了管理类的动态加载、外部进程创建、主机环境查询(比如时间)和安全策略实施等“系统操作”。

类 Throwable 包含了可能由 throw 语句抛出的对象(§14.16)。Throwable 的子类表示错误和异常。

参考资料:java.lang - 百度百科

java.lang.nullpointerexception 怎么解决

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

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

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

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

List lt;会报错

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

3、当一个对象的值为空时,你没有判断为空的情况。你可以试着把下面的代码前加一行代码: 

if(rb!=null rb!="")

改成:

if(rb==null);

if(rb!==nullrb!="") 或者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)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。