<求助>关于空指针异常

guyuetianc 2011-04-12 03:53:24
我在类Wall中定义了一个方法hitWall(Rectangle rt),判断传进来的矩形是否包含在类Wall中定义的矩形rt1或rt2中
public boolean hitWall(Rectangle rt){
if(rt1.contains(rt)||rt2.contains(rt))
return true;
return false;
}
在类Food中,定义了一个rt并调用hitWall时显示异常:java.lang.NullPointerException
for(int i=0;i<3;){
x=rnm.nextInt(tm.WIDTH/WIDTH)*WIDTH;
y=rnm.nextInt(tm.WIDTH-40/WIDTH)*WIDTH;
rt=new Rectangle(x, y, WIDTH, WIDTH);
if(!tm.getWall().hitWall(rt)){
al.add(rt);
i++;
}

}
rt明确已经定义了
...全文
124 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈小猫 2011-04-12
  • 打赏
  • 举报
回复
空指针是指对象为空,你看哪个对象的值是null
guyuetianc 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wula0010 的回复:]

引用 4 楼 guyuetianc 的回复:
引用 1 楼 ylz2007 的回复:

检查tm.getWall()是否为空。

是为空,但不是很理解,我在tm类中定义过了获得它的方法

tm.getWall()为空,所以报错啊,对象引用前要实例化....

如果你不想实例化对象,可以把hitWall定义为Wall的static方法,........
[/Quote]
我在主类中对Wall进行了实例化,写成static方法改动太大。
guyuetianc 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sicauhsy 的回复:]

这种情况,一般都选择debug一下就很好找到问题的关键啊
[/Quote]
debug我不怎么会用。
sicauhsy 2011-04-12
  • 打赏
  • 举报
回复
这种情况,一般都选择debug一下就很好找到问题的关键啊
guyuetianc 2011-04-12
  • 打赏
  • 举报
回复
已经知道怎么解决了,在Tanchise_main类中定义Wall时直接对它进行初始化而不是在public Tanchise_main()中。
wula0010 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 guyuetianc 的回复:]
引用 1 楼 ylz2007 的回复:

检查tm.getWall()是否为空。

是为空,但不是很理解,我在tm类中定义过了获得它的方法
[/Quote]
tm.getWall()为空,所以报错啊,对象引用前要实例化....

如果你不想实例化对象,可以把hitWall定义为Wall的static方法,........
guyuetianc 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ylz2007 的回复:]

检查tm.getWall()是否为空。
[/Quote]
是为空,但不是很理解,我在tm类中定义过了获得它的方法
awusoft 2011-04-12
  • 打赏
  • 举报
回复
Wall

本身的rt1为null了吧.
茫茫大海 2011-04-12
  • 打赏
  • 举报
回复
应该是tm为空把!
  • 打赏
  • 举报
回复
检查tm.getWall()是否为空。

62,623

社区成员

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

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