tengo el siguiente fragmento de código que está causando me molesta, donde currentRate y secondCurrentRate son objetos dobles, correctamente definida:Doble = null está causando una NullPointerException
(currentRate != null && secondCurrentRate != null) ? currentRate * secondCurrentRate : null;
Esto debe comprobar cada uno doble para nula -ness y asigne el valor nulo en consecuencia. Sin embargo, si secondCurrentRate es nulo, esto causa una NullPointerException. He cambiado el fragmento a esto:
(currentRate == null | secondCurrentRate == null) ? null : currentRate * secondCurrentRate;
y esto funciona como se esperaba. Mi pregunta es por qué está pasando esto? Pude entenderlo si estaba llamando a algún método sobre los objetos, pero entendí que NullPointerExceptions se lanzaba cuando se llamaba a un método en un objeto nulo. Hay un objeto nulo pero no hay una llamada a método.
¿Alguien puede dar alguna idea de esto? Esto se está ejecutando en Java 5.
En su segundo fragmento, ¿es "||" o "|"? –
@ Thierry-Dimitri Roy es lo mismo en este caso. –
Proporcione un programa breve pero completo que demuestre el problema. –