一个NullPointException异常,请教...

yaha129 2008-04-26 01:49:08
问个问题啊,知道的人帮回答下

String[] books 的值为null
我现在想判断
当books 为空的时候,进行操作一
否则进行操作二
我是这么写的
if(books.equals(null))
{
....;
}
else
....;
可运行的时候 出现NullPointException异常

我把 if 语句改成 if(books[0].length==0)
一样的问题.

有没有老师知道该怎么判断......
教我一下,感激不尽
...全文
495 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
hilleon 2008-06-23
  • 打赏
  • 举报
回复
mark,学习了
phoenix_dt 2008-06-23
  • 打赏
  • 举报
回复
又学到东西了,不错!
anminliu 2008-04-29
  • 打赏
  • 举报
回复
引用楼主 yaha129 的帖子:
问个问题啊,知道的人帮回答下

String[] books 的值为null
我现在想判断
当books 为空的时候,进行操作一
否则进行操作二
我是这么写的
if(books.equals(null))
{
....;
}
else
....;
可运行的时候 出现NullPointException异常

我把 if 语句改成 if(books[0].length==0)
一样的问题.

有没有老师知道该怎么判断......
教我一下,感激不尽


if(books == null)
{
.....
}else{
.....
}

我把 if 语句改成 if(我把 if 语句改成 if(books[0].length==0)
一样的问题.
[0].length==0)
一样的问题.
//首先你没实例化books数组,所以books是null,所以出现这个异常!
关于这个异常的说明:

当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:

调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。



sd6334606 2008-04-28
  • 打赏
  • 举报
回复
用books == null就可以了。
sigmod 2008-04-28
  • 打赏
  • 举报
回复
book == null
如果book是null,你已经调用了book的equal方法,就会null point exception
numen_wlm 2008-04-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ZHOUJIAOSHOU 的回复:]
改成"if(books==null)",或者写成"null.equals(books)"也可以,另外你的NetBeans可以能JRE版本太老,如果在你的机子上安装过JBuilder,Oracle之类的软件的话请修改你的环境变量
[/Quote]
这位帅哥,不要误导人家哦,null.equals(books) ??? 这样的代码你也能写出来啊?
ZHOUJIAOSHOU 2008-04-27
  • 打赏
  • 举报
回复
改成"if(books==null)",或者写成"null.equals(books)"也可以,另外你的NetBeans可以能JRE版本太老,如果在你的机子上安装过JBuilder,Oracle之类的软件的话请修改你的环境变量
yaha129 2008-04-27
  • 打赏
  • 举报
回复
希望有高人顺便帮我解决下下面这个问题,我的netBeans装不了
http://topic.csdn.net/u/20080426/13/736ddba5-fdc9-46c2-915f-0e3aa748236b.html
yaha129 2008-04-27
  • 打赏
  • 举报
回复
谢谢各位热心的人.
我把if(books.equals(null)) 改成if(books==null)后问题解决了.

谢谢了~~~
zhangbug_net 2008-04-26
  • 打赏
  • 举报
回复
null要用==来判断
if(books==null)
{
....;
}
else
....;
胡矣 2008-04-26
  • 打赏
  • 举报
回复
if(books.equals(null))
tang3dashu 2008-04-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 numen_wlm 的回复:]
Java codeif(books.equals(null))
{
....;
}
else



你这样的判断是毫无意义的,如果books为null的时候,表明这个对象指向了一个空的引用,此时调用其任何的方法都会产生NullPointException这个异常。
应该这样判断 if books == null ...,通常equals()方法是用来判断对象的值是否相等,而不应该用于判null的操作
[/Quote]

一样
anqini 2008-04-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 yaha129 的帖子:]
问个问题啊,知道的人帮回答下

String[] books 的值为null
我现在想判断
当books 为空的时候,进行操作一
否则进行操作二
我是这么写的
if(books.equals(null))
{
....;
}
else
....;
可运行的时候 出现NullPointException异常

我把 if 语句改成 if(books[0].length==0)
一样的问题.

有没有老师知道该怎么判断......
教我一下,感激不尽
[/Quote]

if(books == null)
{
.....
}else{
.....
}

我把 if 语句改成 if(我把 if 语句改成 if(books[0].length==0)
一样的问题.
[0].length==0)
一样的问题.
//首先你没实例化books数组,所以books是null,所以出现这个异常!
关于这个异常的说明:

当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:

调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。
我是风 2008-04-26
  • 打赏
  • 举报
回复
if(books !=null) { 
for(String str:books){
if(str != null) {
...
}
}
}
fuyou001 2008-04-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kokobox 的回复:]
null在java中是一个没有实例化的对象,没有实例化的对象在内存中就没有内存分配给他

这样指针在找内存中找对象地址的时候就会找不到而抛出空指针异常
[/Quote]
kokobox 2008-04-26
  • 打赏
  • 举报
回复
null在java中是一个没有实例化的对象,没有实例化的对象在内存中就没有内存分配给他

这样指针在找内存中找对象地址的时候就会找不到而抛出空指针异常
kokobox 2008-04-26
  • 打赏
  • 举报
回复
如果String[] books == null 的话 你掉用他的equals的话会抛出空指针

lz可以先判断books是不是为null

如:

if(books !=null && books.length>0){
for(String str:books){
........
}
}
numen_wlm 2008-04-26
  • 打赏
  • 举报
回复
if(books.equals(null)) 
{
....;
}
else

你这样的判断是毫无意义的,如果books为null的时候,表明这个对象指向了一个空的引用,此时调用其任何的方法都会产生NullPointException这个异常。
应该这样判断 if books == null ...,通常equals()方法是用来判断对象的值是否相等,而不应该用于判null的操作

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧