This question already has answers here:
java: Class.isInstance vs Class.isAssignableFrom
(4个答案)
7年前关闭。
给定
和
(如果有)?
(4个答案)
7年前关闭。
给定
Class<?> superType
和Object 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