nullpointerexception Nullpointer代表什么
大家好,今天小编来为大家解答nullpointerexception这个问题,Nullpointer代表什么很多人还不知道,现在让我们一起来看看吧!
java.lang.NullPointerException是什么错误
java.lang.NullPointerException是java常见的异常,中文常常翻译为空指针异常.
触发条件:当一个对象为空(null)时,试图调用对象的方法,或者访问或者修改对象的属性时,就会抛出空指针异常.
解决该异常的办法:
尽量避免使用为空的对象,
或者先判断是否为null然后再使用,
或者使用try catch捕获到该异常后处理这个异常.
参考代码
错误示范
publicclassDemo{
publicstaticvoidmain(String[]args){
Stringstr=null;
if(str.equals("ABC")){//str为空,调用str的equals方法,就会报错
System.out.println("字符串的内容是ABC");
}else{
System.out.println("字符串的内容不是ABC");
}
}
}解决示范1
publicclassDemo{
publicstaticvoidmain(String[]args){
Stringstr=null;
if("ABC".equals(str)){//使用"ABC"这个不为null的对象,调用他的equals方法
System.out.println("字符串的内容是ABC");
}else{
System.out.println("字符串的内容不是ABC");
}
}
}示范2:先判断是否为空,不为空,才调用方法和访问属性
publicclassDemo{
staticStringstr1;
publicstaticvoidmain(String[]args){
if(str1!=null){//先判断它不为空,才调用它的length方法
System.out.println(str1.length());
}else{
System.out.println("str1对象为空");
}
}
}示范3
importjava.util.Scanner;
publicclassDemo{
staticStringstr1;
publicstaticvoidmain(String[]args){
try{
System.out.println(str1.length());
}catch(NullPointerExceptione){
System.out.println("str1为空...请赋值..");
Scannersc=newScanner(System.in);
str1=sc.nextLine();
System.out.println("str1的长度为:"+str1.length());
}
}
}
//str1为空...请赋值..
//ABC
//str1的长度为:3
JAVA中的NullPointerException
第一、你的数据库可能没能查出相关数据来。就是说没查出id为9的记录。
第二、你的这段代码有问题,导致没查出相关记录是会导致异常的。问题有两处:
1.
if(list.size()
!=
0
&&
list
!=
nul
l)这句是错误的,如果list
==
null
,那么
null.size()确实是NullPointerException(空指针异常)。应该把这两个条件换过来,变成
if(list
!=
null&&
list.size()
!=
0
),这样,当list
==
null
时,list
!=
null为假,形成短路与,不再判断list.size()
!=
0了。
2.你主函数调用实体方法时,直接使用tm.getId()。这也是错误的。看下你的getById(int
id)方法:如果没查到相关记录,返回的实体为null。那么,调用方法时接受到的实体也是null,同样的:NullPointerException(空指针异常)。应该先判断:
if(tm
!=
null)
System.out.println(tm.getId());
java.lang.NullPointerException是什么意思
java.lang.NullPointerException具体意思是空指针异常,最常见的问题就是没有初始化。
在Java中一般报空指针异常的原因有以下几种:
1、字符串变量未初始化;
2、接口类型的对象没有用具体的类初始化,比如:
List lt;会报错
List lt= new ArrayList();则不会报错了
3、当一个对象的值为空时,没有判断为空的情况。可以试着把下面的代码前加一行代码:
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的子类表示错误和异常。
好了,文章到此结束,希望可以帮助到大家。