java: Class.isInstance 与 Class.isAssignableFrom

标签 java

clazz 是一些 Classobj 是一些 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)
只要 clazzobj 不为空,

总是为真。

关于java: Class.isInstance 与 Class.isAssignableFrom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3949260/

相关文章:

java - 在特定索引之后从列表中删除所有元素

java - 我想在 linux 中为 windows 交叉编译一个 gcj 程序

java - 我如何在 Java 中转换这个日期?

java - 将带有 List 的 scala hashmap 转换为带有 java list 的 java hashmap

java - 使用 Java 的 Google Admin SDK 用户访问 API

java 包 com.google.common.collect.Range< LocalDate > 交集返回错误的交集

java - 使用 Itext Java 将 PDFTable 单元格拆分为两列

java - 非阻塞 I/O 与使用线程(上下文切换有多糟糕?)

java - 是否有一种数据类型在 2 个字母中使用的存储空间比 String 少?

Java:在不卡住的情况下调用自调用方法?