It's an annotation, but the correct name is NonNull
:
protected void onSaveInstanceState(@NonNull Bundle outState)
(And also)
import android.support.annotation.NonNull;
The purpose is to allow the compiler to warn when certain assumptions are being violated (such as a parameter of a method that should always have a value, as in this particular case, although there are others). From the Support Annotations documentation:
The @NonNull
annotation can be used to indicate that a given parameter
can not be null.
If a local variable is known to be null (for example because some
earlier code checked whether it was null), and you pass that as a
parameter to a method where that parameter is marked as @NonNull, the
IDE will warn you that you have a potential crash.
They are tools for static analysis. Runtime behavior is not altered at all.
In this case, the particular warning is that the original method you're overriding (in Activity
) has a @NonNull
annotation on the outState
parameter, but you did not include it in the overriding method. Just adding it should fix the issue, i.e.
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…