code: public static boolean isAssignableFrom(Class<?> dest, Class<?> src)
     {
        if (dest == null || src == null)
           throw MESSAGES.cannotCheckClassIsAssignableFrom(dest, src);
  
        boolean isAssignable = dest.isAssignableFrom(src);
        if (isAssignable == false && dest.getName().equals(src.getName()))
        {
           ClassLoader destLoader = dest.getClassLoader();
           ClassLoader srcLoader = src.getClassLoader();
           if (ROOT_LOGGER.isTraceEnabled()) ROOT_LOGGER.notAssignableDueToConflictingClassLoaders(dest, src, destLoader, srcLoader);
        }
  
        if (isAssignable == false && isPrimitive(dest))
        {
           dest = getWrapperType(dest);
           isAssignable = dest.isAssignableFrom(src);
        }
        if (isAssignable == false && isPrimitive(src))
        {
           src = getWrapperType(src);
           isAssignable = dest.isAssignableFrom(src);
        }
        return isAssignable;
     }
docs: Return true if the dest class is assignable from the src.
  Also handles arrays and primitives.