public static <T> T checkNotNull(
      @Nullable T reference, @Nullable String errorMessageTemplate, Object... errorMessageArgs) {
    if (reference == null) {
      // If either of these parameters is null, the right thing happens anyway
      throw new NullPointerException(format(errorMessageTemplate, errorMessageArgs));
    }
    return reference;
  }
Ensures that an object reference passed as a parameter to the calling method is not null.

@param reference an object reference
@param errorMessageTemplate a template for the exception message should the check fail. The
    message is formed by replacing each {@code %s} placeholder in the template with an
    argument. These are matched by position - the first {@code %s} gets {@code
    errorMessageArgs[0]}, etc. Unmatched arguments will be appended to the formatted message in
    square braces. Unmatched placeholders will be left as-is.
@param errorMessageArgs the arguments to be substituted into the message template. Arguments
    are converted to strings using {@link String#valueOf(Object)}.
@return the non-null reference that was validated
@throws NullPointerException if {@code reference} is null
fbcore/src/main/java/com/facebook/common/internal/Preconditions.java