关于 Class.isAssignableFrom() 与instanceof的区别
isAssignableFrom
用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。
通常调用格式是
Class1.isAssignableFrom (Class2)
调用者和参数都是 java.lang.Class 类型。
实例:
Class parent = java.io.InputStream.class;
Class child = java.io.FileInputStream.class;
System.out.println(parent.isAssignableFrom(child));
System.out.println(child.isAssignableFrom(parent));
输出结果是:
true
false
instanceof
用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。
常用格式是:
oo instanceof TypeName
第一个参数是对象实例名,第二个参数是具体的类名或接口名
由此可以知道
instanceof是 子->父 的过程;
isAssignableFrom是 父->子 的过程。
评论前必须登录!
注册