0

当我尝试以下语句时,

a.do(b.do());

假设我从那行得到了 NullPointerException。

那么,有什么办法可以判断a是否为空,b是否为空呢?

4

3 回答 3

4

不,唯一的解决方案是提取内部表达式:

Object o = b.do()
a.do(o);

无论如何,这是个好主意。

于 2012-05-07T07:17:36.527 回答
2

如果您在 eclispe 或任何标准 IDE 中调试您的程序,您可以Step Into先执行b.do(). 如果它崩溃,您的问题出在b对象上。如果不是Step Outb.do()那里Step Into a.do()找到你的问题。

我必须说,尽管 Tomasz 的方法更安全,并且推荐使用,因为它也是可读的。

于 2012-05-07T07:23:34.843 回答
0

a 或 b 为空,该语句会导致错误。你看不到哪个,除非分别检查每个对象。

另外,“do”不是保留关键字吗?没有把握。

于 2012-05-07T07:24:00.397 回答