这是我的情况。
开发Java应用程序时,偶尔会得到java.lang.NullPointerException
。您可以打印堆栈跟踪,它将告诉您取消引用空对象的类和行号。通常,确定哪个对象可能为null是很简单的(您可以随时检查该语句中取消引用的所有对象的无效性。)
是否可以从NullPointerException以编程方式确切知道哪个引用的对象为null(如果在同一语句中使用了多个不同的对象)?
答案 0 :(得分:4)
对象不能null
只能引用null
。检查哪个引用为null的最简单方法是在不同的行上引用每个值。
答案 1 :(得分:2)
根据定义,没有对象。引用为空。
再次阅读你的问题,我想我误解了。我认为你的意思是你有类似的东西:
if(ref1.method() && ref2.method()) {
....
}
并且您想知道ref1或ref2是否为空。
如果是,那么没有。将该陈述分成不同的行。
答案 2 :(得分:1)
没有。你不能这样做(在一般情况下)。原因是Java(像大多数其他语言一样)没有跟踪中间结果。
答案 3 :(得分:0)
理论上你可以......在实践中你不能......我的意思是......这是可能的。构建您将不得不扩展JVM或尝试找到另一个困难的解决方案。