2015-05-08 8 views
10

Ich weiß getView() könnte innerhalb onCreateView() Methode null zurück, aber selbst wenn ich den folgenden Code in onActivityCreated() setzen, onStart() oder onViewCreated() Methoden, es zeigt immer noch die Warnung über einen möglichen NullPointerException in Android Studio (obwohl mein Programm ohne irgendein Problem läuft). Wie kann man diese Warnung loswerden?Nullpointer Warnung auf getView() innerhalb onActivityCreated/onStart/onViewCreated Methode

Ich benutze Fragmente.

Code:

datpurchased = (EditText) getView().findViewById(R.id.datepurchased); 
//datpurchased defined as instance variable in the class 

Warning:

Method Invocation 'getView() findViewById (R.id.datepurchased)' kann produzieren 'java.lang.NullPointerException'

Antwort

13

Android Studio basiert auf IntelliJ IDEA, und dies ist eine Funktion von IntelliJ, die Ihnen Warnungen zur Kompilierzeit gibt, wenn Sie nicht überprüfen, ob ein ob Die von einer Methode zurückgegebene Methode lautet null, bevor sie verwendet wird.

Eine Möglichkeit, dies zu vermeiden, ist Programm im Stil, der immer für null prüft oder fängt NullPointerException, aber es kann sehr ausführlich, vor allem für Dinge wissen, dass Sie immer ein Objekt zurückgeben und nie null. mit Anmerkungen wie @SuppressWarnings für Methoden

Eine weitere Alternative ist die Warnhinweise auf solche Fälle zu unterdrücken, die Objekte verwenden Sie wissen nie null sein:

@SuppressWarnings({"NullableProblems"}) 
public Object myMethod(Object isNeverNull){ 
    return isNeverNull.classMethod(); 
} 

oder in Ihrem Fall, ein Line-Level-Unterdrückung:

//noinspection NullableProblems 
datpurchased = (EditText) getView().findViewById(R.id.datepurchased); //datpurchased defined as instance variable in the class 

Stellen Sie sicher, dass die Objekte wirklich nie null sein können.

Weitere Informationen zu den @NotNull- und @Nullable-Annotationen von IntelliJ finden Sie unter here und mehr über Inspektionen und deren Unterdrückung here.

+11

Ich konnte meine Warnung mit 'noinspection ConstantConditions' unterdrücken. Aber der Link zur Unterdrückung von Inspektionen war sehr nützlich! – iamreptar