让 clazz
是一些 Class
而 obj
是一些 Object
。
是
clazz.isAssignableFrom(obj.getClass())
总是一样
clazz.isInstance(obj)
?
如果不是,有什么区别?
最佳答案
只要 clazz
对象表示的类是 Foo
的父类(super class)或超接口(interface),
clazz.isAssignableFrom(Foo.class)
就会为真.
obj
是类 clazz
的实例,clazz.isInstance(obj)
就会为真。
即:
clazz.isAssignableFrom(obj.getClass()) == clazz.isInstance(obj)
只要 clazz
和 obj
不为空,总是为真。
关于java: Class.isInstance 与 Class.isAssignableFrom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3949260/