本文目录一览:
- java.lang.nullpointerexception是什么意思
- [java.lang.NullPointerException 是什么意思啊 该如何处理](#java.lang.NullPointerException 是什么意思啊 该如何处理)
- 网页出现java.lang.nullpointerexception错误
- 如何查找java.lang.NullPointerException的原因
- [java.lang.nullpointerexception 怎么解决](#java.lang.nullpointerexception 怎么解决)
- java.lang.NullPointerException错误是什么意思
java.lang.nullpointerexception是什么意思
NullPointerException
属于 RuntimeException
的子类,所以是免检异常。
当应用程序试图在需要对象的地方使用 null
时,抛出该异常。这种情况包括:
- 调用 null 对象的实例方法。
- 访问或修改 null 对象的字段。
- 如果一个数组为 null,试图用属性
length
获得其长度时。 - 如果一个数组为 null,试图访问或修改其中某个元素时。
- 在需要抛出一个异常对象,而该对象为 null 时。
应用程序将会抛出
NullPointerException
类的实例,表明其他对 null 对象的非法使用。
java.lang.NullPointerException 是什么意思啊 该如何处理
这个是空指针异常,空指针的解决办法:重点关注报错发生的所在行,通过空指针异常产生的两条主要原因诊断具体的错误。同时为了避免空指针的发生,最好在做判断处理时将 "null" 或者空值放于设定的值之前。 在 Java 中一般报空指针异常的原因有以下几种:
- 字符串变量未初始化;
- 接口类型的对象没有用具体的类初始化,比如:
List lt; // 会报错 List lt = new ArrayList(); // 则不会报错
- 当一个对象的值为空时,你没有判断为空的情况。你可以试着把下面的代码前加一行代码:
改成: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.lang.nullpointerexception错误
网页出现 java.lang.nullpointerexception
错误解决方法:
错误程序:
(未提供具体代码)
正确程序:
(未提供具体代码)
分析原因:
正常运行测试即可解决。
package ch1.incremental;
import java.util.ArrayList;
import java.util.List;
public class MergeTest {
public static void main(String args[]) {
Integer a[] = { 1, 2, 5, 8, 9, 0, 3, 4, 6, 7 }, i;
String b[] = { "AoMen", "BeiJing", "ShangHai", "ChongQing", "TianJin", "XiangGang" };
Double c[] = { 0.5, 3.7, 6.3, 8.5, 9.2, 1.7, 2.3, 4.1, 5.9, 7.4 };
ArrayList<Integer> A = new ArrayList<Integer>();
for (i = 0; i < 10; i++) {
A.add(a[i]);
}
LinearList.merge((List) A, 0, 4, 9);
System.out.println(A);
// LinearList.merge(a, 0, 4, 9);
// for (i = 0; i < 10; i++)
// System.out.print(a[i] + " ");
// System.out.println();
// LinearList.merge(b, 0, 2, 5);
// for (i = 0; i < 6; i++)
// System.out.print(b[i] + " ");
// System.out.println();
// LinearList.merge(c, 0, 4, 9);
// for (i = 0; i < 10; i++)
// System.out.print(c[i] + " ");
// System.out.println();
}
}
如何查找java.lang.NullPointerException的原因
最近一段时间老遇到 NullPointerException
这个异常,于是上网找了一些关于这方面的资料,也解决了问题,在这特意做个总结:
一般报 java.lang.NullPointerException
的原因有以下几种:
- 字符串变量未初始化;
- 接口类型的对象没有用具体的类初始化,比如:
List lt; // 会报错 List lt = new ArrayList(); // 则不会报错了
- 当一个对象的值为空时,你没有判断为空的情况。
之前获取类路径下的资源的时候就报了这个错(当然这个也是因为我不太熟悉用
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 和当前这个类在同一个目录下)
ClassLoader c = this.getClass().getClassLoader();
InputStream in = c.getResourceAsStream("test.txt");
String s = IOUtils.toString(in);
System.out.println(s);
出了异常之后,当时也找不到是哪里出现空指针了,在网上进行了一顿摸索之后,原来这样可以查找出某个对象是否为空,而且通常都要加上这个判断:
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(String path)
:- 路径以 “/” 开头,相对
classes
路径; - 路径不以 “/” 开头,相对当前
class
文件所有路径,例如在cn.itcast.servlet.MyServlet
中执行,那么相对/classes/cn/itcast/servlet/
路径;
- 路径以 “/” 开头,相对
ClassLoader
类的getResourceAsStream(String path)
: 相对classes
路径;
java.lang.nullpointerexception 怎么解决
这个是空指针异常,空指针的解决办法:重点关注报错发生的所在行,通过空指针异常产生的两条主要原因诊断具体的错误。同时为了避免空指针的发生,最好在做判断处理时将 "null" 或者空值放于设定的值之前。 在 Java 中一般报空指针异常的原因有以下几种:
- 字符串变量未初始化;
- 接口类型的对象没有用具体的类初始化,比如:
List lt; // 会报错 List lt = new ArrayList(); // 则不会报错了
- 当一个对象的值为空时,你没有判断为空的情况。你可以试着把下面的代码前加一行代码:
改成: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.lang.NullPointerException错误是什么意思
java.lang.NullPointerException
具体意思是空指针异常,最常见的问题就是没有初始化。
在 Java 中一般报空指针异常的原因有以下几种:
- 字符串变量未初始化;
- 接口类型的对象没有用具体的类初始化,比如:
List lt; // 会报错 List lt = new ArrayList(); // 则不会报错了
- 当一个对象的值为空时,没有判断为空的情况。可以试着把下面的代码前加一行代码:
改成:if(rb != null && rb != "")
if(rb == null); if(rb != null && rb != "") 或者 if(("").equals(rb))
扩展资料:
java.lang
包括基本 Object
类、Class
类、String
类、基本类型的包装类、基本的数学类等等最基本的类。
类 Math
提供了常用的数学函数,比如正弦、余弦和平方根。类似地,类 String
和 StringBuffer
提供了常用的字符串操作。
类 ClassLoader
、Process
、Runtime
、SecurityManager
和 System
提供了管理类的动态加载、外部进程创建、主机环境查询(比如时间)和安全策略实施等“系统操作”。
类 Throwable
包含了可能由 throw
语句抛出的对象(§14.16)。Throwable
的子类表示错误和异常。