Double! = Null вызывает исключение NullPointerException

У меня есть следующий фрагмент кода, который вызывает у меня беспокойство, где currentRate и secondCurrentRate являются объектами Double, правильно определенными:

(currentRate != null && secondCurrentRate != null) ? currentRate * secondCurrentRate : null;

Это должно проверять каждый объект Double на нулевое значение и присваивать значение null соответственно. Однако, если secondCurrentRate имеет значение null, это вызывает исключение NullPointerException. Я изменил фрагмент кода следующим образом:

(currentRate == null | secondCurrentRate == null) ? null : currentRate * secondCurrentRate;

И это работает, как и ожидалось. Мой вопрос: почему это происходит? Я мог бы понять это, если бы я вызывал какой-то метод для объектов, но я понимал, что исключения NullPointerException были вызваны при вызове метода для нулевого объекта. Существует нулевой объект, но нет вызова метода.

Кто-нибудь может предложить какое-либо понимание этого? Это работает в Java 5.

6
задан Richard 23 August 2010 в 13:08
поделиться