ho molte di queste chiamate:findViewById() può produrre NullPointerException
(ListView) getView().findViewById(R.id.main_list_view);
(TextView) getView().findViewById(R.id.items_no);
....
e Android Studio mi dice che essi possono, inerenti un NullPointerException
:
Method Invocation
getView().findViewById(R.id.main_list_view)
possono produrrejava.lang.NullPointerException
meno .. . (Ctrl + F1)Questa ispezione analizza il controllo del metodo e il flusso di dati per segnalare possibili condizioni che sono sempre vere o false, espressioni il cui valore è statisticamente dimostrato essere costante e situazioni che possono portare a violazioni del contratto nullability .
Variabili, parametri di metodo e valori restituiti contrassegnati come
@Nullable
o@NotNull
sono trattate come annullabile (o non-nullo, rispettivamente) e utilizzati durante l'analisi per accertare contratti Nullability, ad esempio segnala possibili erroriNullPointerException
.Ulteriori contratti complessi possono essere definiti utilizzando
@Contract
annotazione, ad esempio:
@Contract("_, null -> null")
- metodo restituisce null se secondo argomento è nullo@Contract("_, null -> null; _, !null -> !null")
- metodo restituisce null se secondo argomento è nullo e non nullo altrimenti
@Contract("true -> fail")
- un tipico metodo diassertFalse
che genera un'eccezione se vero è passato ad essoL'ispezione può essere configurato utilizzare personalizzato
@Nullable
@NotNull
annotazioni (per impostazione predefinita quelli di annotations.jar verranno utilizzati)
opere Fortunatamente Everithing, ma c'è un miglioramento di questo codice posso fatta?
Vuoi scrivere codice che non può mai possibilmente attraverso un NPE ? – csmckelvey
Stai usando un pattern ViewHolder? – SKT
@takendarkk no, ma voglio capire perché ide mi dice che potrebbe succedere – Phate01