Ben currentRate ve secondCurrentRate Çift nesnelerdir beni rahatsız neden olan aşağıdaki kod parçacığını, doğru tanımlanmış olması:Çift = null bir NullPointerException neden oluyor
(currentRate != null && secondCurrentRate != null) ? currentRate * secondCurrentRate : null;
Bu null her her Çift kontrol etmelidir -ness ve null değerini buna göre atayın. Ancak, secondCurrentRate boşsa, bu bir NullPointerException neden olur. Bunun için pasajını değişti:
(currentRate == null | secondCurrentRate == null) ? null : currentRate * secondCurrentRate;
Ve beklendiği gibi bu çalışır. Sorum şu, bu neden oluyor? Nesneler üzerinde bir yöntem çağırıyor olsaydım anlayabiliyordum, ancak null bir nesne üzerinde bir yöntem çağrıldığında NullPointerExceptions atıldı. Boş bir nesne var ama yöntem çağrısı yok.
Bu konuda herhangi bir fikir sahibi olan var mı? Bu, Java 5'te çalıştırılıyor.
İkinci snippet'inizde "||" veya "|"? –
@ Thierry-Dimitri Roy bu durumda aynı şeydir. –
Lütfen sorunu gösteren kısa ama eksiksiz bir program sağlayın. –