繁体   English   中英

我可以找到NullPointerException的来源吗?

[英]Can I find where a NullPointerException came from?

当我尝试以下语句时,

a.do(b.do());

假设我从那一行得到了NullPointerException。

那么,有什么方法可以找到a是否为null,b是否为null?

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

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

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

如果您在eclispe或任何标准IDE中调试程序,则可以执行Step Into ,它将首先执行b.do() 如果崩溃,则问题出在b对象上。 如果不是,请从b.do() Step OutStep Into a.do()然后在其中找到问题。

我必须说,尽管Tomasz的方法更安全,并建议使用,因为它也易于阅读。

对于该语句,a或b为null会导致错误。 除了单独检查每个对象,您看不到哪个。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM