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