Java:如何从NullPointerException中提取解除引用对象的名称/类型

时间:2011-04-26 15:45:54

标签: java nullpointerexception

这是我的情况。

开发Java应用程序时,偶尔会得到java.lang.NullPointerException。您可以打印堆栈跟踪,它将告诉您取消引用空对象的类和行号。通常,确定哪个对象可能为null是很简单的(您可以随时检查该语句中取消引用的所有对象的无效性。)

是否可以从NullPointerException以编程方式确切知道哪个引用的对象为null(如果在同一语句中使用了多个不同的对象)?

4 个答案:

答案 0 :(得分:4)

对象不能null只能引用null。检查哪个引用为null的最简单方法是在不同的行上引用每个值。

答案 1 :(得分:2)

根据定义,没有对象。引用为空。

再次阅读你的问题,我想我误解了。我认为你的意思是你有类似的东西:

   if(ref1.method() && ref2.method()) {
       ....
   }

并且您想知道ref1或ref2是否为空。

如果是,那么没有。将该陈述分成不同的行。

答案 2 :(得分:1)

没有。你不能这样做(在一般情况下)。原因是Java(像大多数其他语言一样)没有跟踪中间结果。

答案 3 :(得分:0)

理论上你可以......在实践中你不能......我的意思是......这是可能的。构建您将不得不扩展JVM或尝试找到另一个困难的解决方案。