There are various libraries available to check if a variable is null or not.
Most notable ones are :

*   `com.google.common.base.Preconditions.checkNotNull`
*   `com.google.common.base.Verify.verifyNotNull`
*   `java.util.Objects.requireNonNull`

These methods generally takes two arguments. The first is the reference that
should be non-null. The second is the error message to print (usually a string
literal).

There are some common scenarios where the first argument can't be null but is
still checked to be null and is thus redundant.

*   By specification, a constructor cannot return null. So if the argument is an
    object creation or array creation expression, checking can be skipped.

*   Often the order of the two arguments is swapped, and the reference is never
    actually checked for nullity. This check ensures that the first argument to
    such methods is not a literal.

*   When a primitive is passed as the argument to check, the primitive will be
    [autoboxed](https://docs.oracle.com/javase/7/docs/technotes/guides/language/autoboxing.html)
    into a boxed object, which is non-null, causing the check to always pass
    without the condition being evaluated. If the intent was to ensure that the
    primitive met some criterion (e.g., a boolean that should be non-null),
    please use `Preconditions.checkState()` or `Preconditions.checkArgument()`
    instead.
