在 Java 中,有两种方式来判断某个对象是否是某一类型:
Class#isInstance()
instanceof
两者在作用是等价的,只不过 instanceof
是 Java 的关键字,isInstance()
是 Class 的成员方法。
但是在用法上,Class#isInstance()
会更加灵活一点,因为使用 instanceof
时,必须要知道具体的目标类型:
obj instanceof ExactClass
而 Class#isInstance()
则不必,比如:
boolean test(Object o1, Object o2) {
return o1.getClass().isInstance(o2);
}