如何查找java.lang.NullPointerException的原因
来源:互联网 发布:mac 使命召唤 编辑:程序博客网 时间:2024/06/13 11:50
最近一段时间老遇到NullPointerException这个异常,于是上网找了一些关于这方面的资料,也解决了问题,在这特意做个总结:
一般报java.lang.NullPointerException的原因有以下几种:
·1.字符串变量未初始化;
·2.接口类型的对象没有用具体的类初始化,比如:
List lt; 会报错
List lt = new ArrayList(); 则不会报错了
·3.当一个对象的值为空时,你没有判断为空的情况。
·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)
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和当前这个类在同一个目录下)
<span style="white-space:pre"></span>ClassLoader c = this.getClass().getClassLoader();InputStream in = c.getResourceAsStream("test.txt");String s = IOUtils.toString(in);System.out.println(s);出了异常之后,当时也找不到是哪里出现空指针了,在网上进行了一顿摸索之后,原来这样可以查找出某个对象是否为空,而且通常都要加上这个判断:
<span style="white-space:pre"></span>ClassLoader 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路径;
0 0
- 如何查找java.lang.NullPointerException的原因
- java.lang.NullPointerException的原因
- 报java.lang.NullPointerException错误的原因
- java.lang.NullPointerException的错误原因
- 报java.lang.NullPointerException原因
- java的StackOverflowError和java.lang.NullPointerException异常的原因
- JAVA学习21_报java.lang.NullPointerException的原因
- android启动程序报java.lang.NullPointerException的原因
- java.lang.NullPointerException的原因(空指针)
- java.lang.NullPointerException的分析
- java.lang.NullPointerException的…
- Java Web应用部署在SAE平台上出现“java.lang.NullPointerException”错误的原因之一
- java 编程中遇到空指针异常的可能原因java.lang.nullpointerexception
- android编程中遇到的关于 java.lang.NullPointerException错误的原因及解决办法
- 一般报java.lang.NullPointerException的原因有以下几种
- 一般报java.lang.NullPointerException的原因有以下几种
- Heritrix2在Settings Sheets时出现java.lang.NullPointerException错的原因和解决方式
- hibernate使用了乐观锁后报java.lang.NullPointerException 异常的原因
- lucene(二)索引的建立 Directory,lockFactory
- 公司拷贝不了文件到U盘,如何处理呢?
- MFC串口编程详细教程
- 在KVM客户机RHEL6中安装Xen4.x
- 将字典或者数组转换成JSON数据或者字符串
- 如何查找java.lang.NullPointerException的原因
- 【iOS知识学习】_iPhone学习微信分享到好友/短信
- 不容易系列之(3)—— LELE的RPG难题
- Maven将依赖一起打包--使用maven-assembly-plugin
- and hit a jackpot w
- VC控件MSComm编写串口通信程序
- HDU_1863《畅通工程》
- Leetcode Binary Tree Inorder Traversal 二叉树中序遍历
- Linux设备驱动程序学习———时间、延迟及延缓操作