我有下面的代码片段,是造成我烦,其中currentRate和secondCurrentRate是双对象,正确定义:双= NULL导致一个NullPointerException
(currentRate != null && secondCurrentRate != null) ? currentRate * secondCurrentRate : null;
这应该检查每个每个双人间空并且相应地赋值null。但是,如果secondCurrentRate为null,则会导致NullPointerException。 我已经改变了段将:
(currentRate == null | secondCurrentRate == null) ? null : currentRate * secondCurrentRate;
而这按预期工作。我的问题是为什么会发生这种情况?我可以理解,如果我在对象上调用某种方法,但是我的理解是在空对象上调用方法时引发了NullPointerExceptions。有一个空对象,但没有方法调用。
任何人都可以提供任何见解吗?这是运行在Java 5中。
在你的第二个片段中,它是“||”或“|”? – 2010-08-23 13:11:24
@ Thierry-Dimitri Roy在这种情况下是一样的。 – 2010-08-23 13:12:54
请提供一个简短但完整的程序来说明问题。 – 2010-08-23 13:13:02