code: @CanIgnoreReturnValue
    public static <T extends @NonNull Object> T checkNotNull(
        T reference, @Nullable String errorMessageTemplate, Object @Nullable ... errorMessageArgs) {
      if (reference == null) {
        throw new NullPointerException(lenientFormat(errorMessageTemplate, errorMessageArgs));
      }
      return reference;
    }
docs: 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
  @see Verify#verifyNotNull Verify.verifyNotNull()