Jestem trochę zdezorientowany w Android Studio. Nie widziałem wcześniej tego typu błędów w Eclipse.Wywołanie metody niedokładnego błędu w Android Studio
przykład:
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction tf = fragmentManager.beginTransaction();
Fragment oldFragment = fragmentManager.findFragmentByTag(AddDialogFragment.TAG);
kod ten działa dobrze, ale fragmentManager.beginTransaction(); zostanie podświetlony i mówi: Metoda inwokacja „fragmentManager.beginTransaction” może produkować „java.lang.NullPointerException” mniej ... (Ctrl + F1)
Kontrola ta zgłasza tych warunków w określonym zakresie kontroli, które są zawsze prawdziwe, czy false, a także wskazuje miejsce, w którym może zostać wywołany wyjątek RuntimeException, w oparciu o analizę przepływu danych w kodzie. Ta inspekcja zgłasza również naruszenia umowy Nullable/NotNull. Adnotacje do obsługi umowy można skonfigurować (domyślnie stosowane będą adnotacje @ Nullable/@ NotNull z adnotations.jar)
Czy muszę wcześniej sprawdzać wartość Null?
FragmentManager fragmentManager = getFragmentManager();
if(fragmentManager != null)
FragmentTransaction tf = fragmentManager.beginTransaction();
Fragment oldFragment = fragmentManager.findFragmentByTag(AddDialogFragment.TAG);
Nigdy nie widziałem tego w żadnym Przypowieściach ani Przykładach wcześniej. Jeśli to głupie pytanie, to przepraszam, ale jestem wciąż początkującym :) .
na zamówienie aby uniknąć NPE, zawsze musisz sprawdzić, czy zwrócona referencja jest pusta. – Blackbelt