当我尝试以下语句时,
a.do(b.do());
假设我从那行得到了 NullPointerException。
那么,有什么办法可以判断a是否为空,b是否为空呢?
当我尝试以下语句时,
a.do(b.do());
假设我从那行得到了 NullPointerException。
那么,有什么办法可以判断a是否为空,b是否为空呢?
不,唯一的解决方案是提取内部表达式:
Object o = b.do()
a.do(o);
无论如何,这是个好主意。
如果您在 eclispe 或任何标准 IDE 中调试您的程序,您可以Step Into
先执行b.do()
. 如果它崩溃,您的问题出在b
对象上。如果不是Step Out
从b.do()
那里Step Into
a.do()
找到你的问题。
我必须说,尽管 Tomasz 的方法更安全,并且推荐使用,因为它也是可读的。
a 或 b 为空,该语句会导致错误。你看不到哪个,除非分别检查每个对象。
另外,“do”不是保留关键字吗?没有把握。