This question already has answers here:
java: Class.isInstance vs Class.isAssignableFrom

(4个答案)


7年前关闭。




给定Class<?> superTypeObject subInstance,两者之间有什么区别

superType.isInstance(subInstance)



superType.isAssignableFrom(subInstance.getClass())

(如果有)?

最佳答案

isAssignableFrom还测试是否可以通过身份转换或扩展引用转换来转换类型。

    Class<?> cInt = Integer.TYPE;

    Long l = new Long(123);

    System.out.println(cInt.isInstance(l)); // false
    System.out.println(cInt.isAssignableFrom(cInt)); // true

10-07 22:37