ClassUtils { public static boolean isAssignableFrom(Class<?> interfaceClass, Class<?> implementClass) { if (interfaceClass.isAssignableFrom(implementClass)) { return true; } String interfaceName = interfaceClass.getCanonicalName(); return implementClass.getCanonicalName().equals(interfaceName) || isImplementOrSubclass(interfaceName, implementClass); }  static Class forName(String className); static Class forName(String className, boolean initialize); static Class forName(String className, ClassLoader cl); static List<Method> getAllMethods(Class clazz); static List<Field> getAllFields(Class clazz); static T newInstance(Class<T> clazz); static T newInstanceWithArgs(Class<T> clazz, Class<?>[] argTypes, Object[] args); static Object getDefaultPrimitiveValue(Class clazz); static T getDefaultWrapperValue(Class<T> clazz); static String getMethodKey(String interfaceName, String methodName); static boolean isAssignableFrom(Class<?> interfaceClass, Class<?> implementClass);  }
@Test public void testIsAssignableFrom() throws MalformedURLException, ClassNotFoundException { testIsAssignableFrom0(); String codebase = ReflectUtils.getCodeBase(ClassUtilsTest.class); String url = "file: loader = new URLClassLoader(new URL[] { new URL(url) }, null); try { testIsAssignableFrom0(); } finally { loader = null; } }