Commons Lang、ClassUtils.isAssignable()

import org.apache.commons.lang.ClassUtils;
import java.util.*;

public class C2009082200 {
    public static void main(String[] args) {
        Class[] c1 = {String.class, Integer.class, LinkedList.class};
        Class[] c2 = {String.class, Integer.class, LinkedList.class};

        System.out.println(ClassUtils.isAssignable(c1, c2));

        Class[] c3 = {String.class, Integer.class, Object.class};
        System.out.println(ClassUtils.isAssignable(c1, c3));

        Class[] c4 = {String.class, Integer.class, AbstractCollection.class};
        System.out.println(ClassUtils.isAssignable(c1, c4));

        Class[] c5 = {String.class, Integer.class, ArrayList.class};
        System.out.println(ClassUtils.isAssignable(c1, c5));
    }
}

で、

true
true
true
false
import org.apache.commons.lang.ClassUtils;
import java.util.*;

public class C2009082201 {
    public static void main(String[] args) {
        System.out.println(ClassUtils.isAssignable(String.class, Integer.class));
        System.out.println(ClassUtils.isAssignable(String.class, Object.class));

        System.out.println(ClassUtils.isAssignable(LinkedList.class, Object.class));
        System.out.println(ClassUtils.isAssignable(Object.class, LinkedList.class));

        System.out.println(ClassUtils.isAssignable(LinkedList.class, AbstractCollection.class));
        System.out.println(ClassUtils.isAssignable(LinkedList.class, ArrayList.class));
    }
}

で、

false
true
true
false
true
false