tangguo

instanceof和Class.isAssignableFrom(...)有什么区别?

java

以下哪个更好?

a instanceof B

要么

B.class.isAssignableFrom(a.getClass())

我知道的唯一区别是,当“ a”为null时,第一个返回false,而第二个抛出异常。除此之外,它们是否总是给出相同的结果?


阅读 336

收藏
2020-12-04

共1个答案

一尘不染

使用时instanceof,您需要B在编译时知道类。使用时,isAssignableFrom()它可以是动态的,并且可以在运行时更改。

2020-12-04