当我尝试以下声明时,
a.do(b.do());
假设我从该行获得了NullPointerException。
那么,有没有办法找到a的null是否为null?
答案 0 :(得分:4)
不,唯一的解决方案是提取内部表达式:
Object o = b.do()
a.do(o);
无论如何,这是一个好主意。
答案 1 :(得分:2)
如果您在eclispe或任何标准IDE中调试程序,您可以执行Step Into
,它将首先执行b.do()
。如果崩溃你的问题是b
对象。如果不是来自Step Out
和b.do()
Step Into
的{{1}}并在那里找到您的问题。
我必须说Tomasz的方法更安全,建议使用,因为它也是可读的。
答案 2 :(得分:0)
该语句的a或b为null,导致错误。除了单独检查每个对象外,你无法看到哪一个。
另外,是不是“做”保留关键字?不确定。