一尘不染

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

java

以下哪个更好?

a instanceof B

要么

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

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


阅读 344

收藏
2020-03-06

共1个答案

一尘不染

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

2020-03-06