guava/src/com/google/common/base/Verify.java
@CanIgnoreReturnValue
  public static <T> T verifyNotNull(
      @Nullable T reference,
      @Nullable String errorMessageTemplate,
      @Nullable Object @Nullable ... errorMessageArgs) {
    verify(reference != null, errorMessageTemplate, errorMessageArgs);
    return reference;
  }
@CanIgnoreReturnValue
  public static <T> T verifyNotNull(
      @Nullable T reference,
      @Nullable String errorMessageTemplate,
      @Nullable Object @Nullable ... errorMessageArgs) {
    verify(reference != null, errorMessageTemplate, errorMessageArgs);
    return reference;
  }
@ CanIgnoreReturnValue public static < T > T verifyNotNull ( @ Nullable T reference , @ Nullable String errorMessageTemplate , @ Nullable Object @ Nullable . . . errorMessageArgs ) { verify ( reference != null , errorMessageTemplate , errorMessageArgs ) ; return reference ; }
Ensures that {@code reference} is non-null, throwing a {@code VerifyException} with a custom
message otherwise.

@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 {@code reference}, guaranteed to be non-null, for convenience
@throws VerifyException if {@code reference} is {@code null}
@see Preconditions#checkNotNull Preconditions.checkNotNull()
Ensures that { @code reference } is non - null throwing a { @code VerifyException } with a custom message otherwise .