code: public static boolean isAssignableFrom(Class<?> interfaceClass, Class<?> implementClass) {
          if (interfaceClass.isAssignableFrom(implementClass)) {
              return true;
          }
          // 跨ClassLoader的情况
          String interfaceName = interfaceClass.getCanonicalName();
          return implementClass.getCanonicalName().equals(interfaceName)
              || isImplementOrSubclass(interfaceName, implementClass);
      }
docs: The isAssignableFrom method which can cross multiple classloader.
  
  @param interfaceClass 接口类
  @param implementClass 实现类
  @return 是否指定类型的实现类
  @see Class#isAssignableFrom(Class)