Pomocne NullPointerException
JVM automatycznie wskazuje dokładnie, która zmienna miała wartość null.
Porównanie kodu
✕ Java 8
// Old NPE message: // "NullPointerException" // at MyApp.main(MyApp.java:42) // Which variable was null?!
✓ Java 14+
// Modern NPE message: // Cannot invoke "String.length()" // because "user.address().city()" // is null // Exact variable identified!
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Dokładna zmienna
Komunikat wskazuje konkretną zmienną null w łańcuchu wywołań.
Szybsze debugowanie
Koniec zgadywania, które z wielu wywołań zwróciło null.
Darmowe usprawnienie
Bez zmian w kodzie, po prostu uruchamiasz na JDK 14+.
Stare podejście
Nieczytelny NPE
Nowoczesne podejście
Szczegółowy NPE
Od JDK
14
Poziom trudności
Początkujący
Wsparcie JDK
Pomocne NullPointerException
Dostępne
Szeroko dostępne od JDK 14 (marzec 2020)
Jak to działa
Helpful NPE opisuje, które wyrażenie było null i jaka operacja się nie powiodła. Od Java 14 jest to domyślnie włączone, bez zmian w kodzie, wystarczy nowsze JDK.
Powiązana dokumentacja