本文介绍了java:Class.isInstance vs Class.isAssignableFrom的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

clazz 成为 Class obj be一些对象

clazz.isAssignableFrom(obj.getClass())

始终与

clazz.isInstance(obj)

如果没有,有什么区别?

If not, what are the differences?

推荐答案

每当由 clazz 将为true > object是 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)只要对象 obj 是类 clazz 的实例,就为真。

clazz.isInstance(obj) will be true whenever the object obj is an instance of the class clazz.

即:

clazz.isAssignableFrom(obj.getClass()) == clazz.isInstance(obj)

始终为真,只要 clazz obj 是非空的。

is always true so long as clazz and obj are nonnull.

这篇关于java:Class.isInstance vs Class.isAssignableFrom的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-11 01:50