Right way to use the @NonNull annotation in Android Studio Right way to use the @NonNull annotation in Android Studio android android

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.