Right way to use the @NonNull annotation in Android Studio
You can use Objects.requireNonNull for that. It will do the check internally (so the IDE will not show a warning on your function) and raise a NullPointerException when the parameter is null
:
public MyMethod(@NonNull Context pContext) { Objects.requireNonNull(pContext); ...}
If you want to throw another exception or use API level < 19, then you can just make your own helper-class to implement the same check. e.g.
public class Check { public static <T> T requireNonNull(T obj) { if (obj == null) throw new IllegalArgumentException(); return obj; }}
and use it like so:
public MyMethod(@NonNull Context pContext) { Check.requireNonNull(pContext); ...}
Google examples do it as follows
import static com.google.common.base.Preconditions.checkNotNull;...public void doStuff(@NonNull String sParm){ this.sParm= checkNotNull(s, "sParm cannot be null!");}
You can use the comment-style suppression to disable that specific null check warning, e.g.:
public MyMethod(@NonNull Context pContext) { //noinspection ConstantConditions if (pContext == null) { throw new IllegalArgumentException(); } ... }
You'll need that //noinspection ConstantConditions
every time you do it.