code: @Beta
      public static <T> T checkIsInstance(Class<T> class_, Object reference,
                                          @Nullable String errorMessageTemplate,
                                          @Nullable Object... errorMessageArgs) {
          checkArgument(class_ != null, "Expected non-null class_");
          checkArgument(reference != null, "Expected non-null reference");
          checkArgument(class_.isInstance(reference), errorMessageTemplate, errorMessageArgs);
          //noinspection unchecked
          return (T) reference;
      }
docs: Performs a runtime check if the reference is an instance of the provided class
  
  @param class_               the class to use
  @param reference            reference to check
  @param errorMessageTemplate the exception message template to use if the check fails; will
  be converted to a string using {@link String#valueOf(Object)}
  @param errorMessageArgs     the <tt>errorMessageTemplate</tt> arguments
  @param <T>                  the reference type
  @return the original reference
  @throws IllegalArgumentException if the {@code reference} is not an instance of provided class {@code class_}
  @throws NullPointerException     if the {@code reference} is null; also when the check fails and either
  {@code errorMessageTemplate} or {@code errorMessageArgs} is null (don't let this happen)
  @see Class#isInstance(Object)