Es ist eine Anmerkung, aber der richtige Name lautet NonNull
:
protected void onSaveInstanceState(@NonNull Bundle outState)
(Und auch)
import android.support.annotation.NonNull;
Der Zweck besteht darin, dem Compiler zu ermöglichen, zu warnen, wenn bestimmte Annahmen verletzt werden (z. B. ein Parameter einer Methode, die wie in diesem speziellen Fall immer einen Wert haben sollte, obwohl es andere gibt). Aus der Support Annotations- Dokumentation:
Die @NonNull
Anmerkung kann verwendet werden, um anzuzeigen, dass ein bestimmter Parameter nicht null sein darf.
Wenn bekannt ist, dass eine lokale Variable null ist (z. B. weil ein früherer Code überprüft hat, ob sie null ist) und Sie dies als Parameter an eine Methode übergeben, bei der dieser Parameter als @NonNull markiert ist, werden Sie von der IDE gewarnt ein möglicher Absturz.
Sie sind Werkzeuge für die statische Analyse. Das Laufzeitverhalten wird überhaupt nicht verändert.
In diesem Fall besteht die besondere Warnung darin, dass die ursprüngliche Methode, die Sie überschreiben (in Activity
), eine @NonNull
Anmerkung zum outState
Parameter enthält, diese jedoch nicht in die überschreibende Methode aufgenommen hat. Nur das Hinzufügen sollte das Problem beheben, dh
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
}