java:Class.isInstance 与 Class.isAssignableFrom [英] java: Class.isInstance vs Class.isAssignableFrom
本文介绍了java:Class.isInstance 与 Class.isAssignableFrom的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
让 clazz
成为一些 Class
而 obj
成为一些 Object
.
Let clazz
be some Class
and obj
be some Object
.
是
clazz.isAssignableFrom(obj.getClass())
总是一样
clazz.isInstance(obj)
?
如果不是,有什么区别?
If not, what are the differences?
推荐答案
clazz.isAssignableFrom(Foo.class)
每当 clazz
对象表示的类时,都会为真是 Foo
的超类或超接口.
clazz.isAssignableFrom(Foo.class)
will be true whenever the class represented by the clazz
object is a superclass or superinterface of Foo
.
clazz.isInstance(obj)
就会为真.
即:
clazz.isAssignableFrom(obj.getClass()) == clazz.isInstance(obj)
只要 clazz
和 obj
不为空,
总是为真.
is always true so long as clazz
and obj
are nonnull.
这篇关于java:Class.isInstance 与 Class.isAssignableFrom的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文