2013-09-03 10 views
9

do tej pory nie mogłem znaleźć żadnej odpowiedzi pasującej do mojego problemu/pytania. W Androidzie studio często wyświetla informację, że np. findViewById może wytworzyć NPE, ale wiem, że pozycja JEST istniejąca w układzie, którego używam. Ja również nigdy nie wysłałem NPE na te lokalizacje w czasie wykonywania, więc dlaczego ostrzeżenie/zawiadomienie?Ostrzeżenia Android studio nullpointer/zawiadomienie w widoku kodu

Po prostu nie wiem, jak mam reagować/obsługiwać takie ostrzeżenia/informacje w widoku kodu? Czy są jakieś wskazówki, aby uniknąć tych wiadomości (ponieważ dla mnie wygląda to jak poprawny i działający kod)? Dopiero ostrzeżenia w widoku kodu sprawiają, że jestem niepewny.

Tutaj fragment kodu, na którym wyświetlane jest ostrzeżenie na findViewByID.

//fetch predefined item layout 
row = inflater.inflate(R.layout.view_searchresult_item,null); 
//get table layout for inserting items 
TableLayout itemtablelayout = (TableLayout)row.findViewById(R.id.resultitem_tablelayout); 
+0

Ostrzeżenia nie są błędem. A ostrzeżenie, o którym mówisz, mówi: "może produkować", nie mów "musi produkować". Więc wybór należy do Ciebie. Albo dodaj czek zerowy, albo nie –

+1

To jest moje pytanie. Jak to zwykle się dzieje? Nullchecks za każde ostrzeżenie? W tym przypadku jestem pewien, że nic się nie dzieje, ponieważ identyfikator/przedmiot jest zawsze obecny. Oczywiście dla zmiennych przypadków używana jest funkcja zerowa. – Skullcrasher

+0

Powiedziałem: "Więc wybór należy do ciebie". Jeśli jesteś pewien, że 'findViewById' w twoim kodzie nigdy nie będzie przyczyną NPE, to nie dodawaj sprawdzania zerowego. –

Odpowiedz

3

Ostrzeżenie nie jest błędem. A ostrzeżenie, o którym mówisz, mówi: "może produkować", nie mów "musi produkować". Więc wybór należy do Ciebie. Albo dodać pustego czek lub nie


Tak więc, jeśli jesteś pewien, że findViewById w kodzie nigdy nie będą przyczyną NPE, to nie dodać pustego czek.

+6

Jak można wyłączyć to ustawienie linek? –

Powiązane problemy