我能找到NullPointerException的来源吗?

时间:2012-05-07 07:14:27

标签: java nullpointerexception

当我尝试以下声明时,

a.do(b.do());

假设我从该行获得了NullPointerException。

那么,有没有办法找到a的null是否为null?

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:2)

如果您在eclispe或任何标准IDE中调试程序,您可以执行Step Into,它将首先执行b.do()。如果崩溃你的问题是b对象。如果不是来自Step Outb.do() Step Into的{​​{1}}并在那里找到您的问题。

我必须说Tomasz的方法更安全,建议使用,因为它也是可读的。

答案 2 :(得分:0)

该语句的a或b为null,导致错误。除了单独检查每个对象外,你无法看到哪一个。

另外,是不是“做”保留关键字?不确定。