public static void isAssignableFrom(final Class<?> superType, final Class<?> type, final String message, final Object... values) {
        // TODO when breaking BC, consider returning type
        if (superType.isAssignableFrom(type) == false) {
            throw new IllegalArgumentException(String.format(message, values));
        }
    }
Validates that the argument can be converted to the specified class, if not throws an exception.

<p>This method is useful when validating if there will be no casting errors.</p>

<pre>Validate.isAssignableFrom(SuperClass.class, object.getClass());</pre>

<p>The message of the exception is &quot;The validated object can not be converted to the&quot;
followed by the name of the class and &quot;class&quot;</p>

@param superType  the class the class must be validated against, not null
@param type  the class to check, not null
@param message  the {@link String#format(String, Object...)} exception message if invalid, not null
@param values  the optional values for the formatted exception message, null array not recommended
@throws IllegalArgumentException if argument can not be converted to the specified class
@see #isAssignableFrom(Class, Class)
replugin-host-library/replugin-host-lib/src/main/java/com/qihoo360/replugin/utils/Validate.java