У меня есть следующий фрагмент кода, который меня беспокоит, где currentRate и secondCurrentRate являются объектами Double, правильно определенными:
(currentRate != null && secondCurrentRate != null) ? currentRate * secondCurrentRate : null;
Это должно проверять каждый объект Double на нулевое значение и присваивать значениесоответственно ноль.Однако если значение secondCurrentRate равно нулю, это вызывает исключение NullPointerException.Я изменил фрагмент кода следующим образом:
(currentRate == null | secondCurrentRate == null) ? null : currentRate * secondCurrentRate;
И это работает, как и ожидалось.Мой вопрос: почему это происходит?Я мог бы понять это, если бы я вызывал какой-то метод для объектов, но я понимал, что исключения NullPointerException были вызваны при вызове метода для нулевого объекта.Существует нулевой объект, но нет вызова метода.
Может кто-нибудь предложить какое-либо понимание этого?Это работает в Java 5.