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

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

以下哪一项比较好?

a instanceof B

要么

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

我所知道的唯一区别是,当'a'为空时,第一个返回false,第二个抛出异常。除此之外,他们总是给出相同的结果吗?

_Europa_Europa提问于
akjok54stay hungry stay foolish回答于

instanceof只能用于引用类型,而不能用于原始类型。 isAssignableFrom()可以用于任何类对象:

a instanceof int  // syntax erro
3 instanceof Foo  // syntax erro
int.class.isAssignableFrom(int.class)  // true
心愿回答于

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

所属标签

可能回答问题的人

  • 学生

    3 粉丝476 提问7 回答
  • uncle_light

    5 粉丝518 提问6 回答
  • 最爱开车啦

    8 粉丝503 提问5 回答
  • 骑牛看晨曦

    4 粉丝522 提问5 回答

扫码关注云+社区

领取腾讯云代金券