两者主要区别总结:
- isAssignableFrom() 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。
- instanceof是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。
- 其中instanceof是子-->父 ,isAssignableFrom是父-->子
用法: 父类.class.isAssignableFrom(子类.class) 子类实例 instanceof 父类类型 |
举例说明:
isAssignableFrom使用
private static boolean isList(Field field){
boolean flag = false;
String simpleName = field.getType().getSimpleName();
if ("List".equals(simpleName) || "ArrayList".equals(simpleName) || field.getType().isAssignableFrom(java.util.List.class)){
flag = true;
}
return flag;
}
instanceof使用
List<String> list = new ArrayList<String>();
System.out.println(list instanceof List);
System.out.println(list instanceof ArrayList);