instanceof和isInstance区别

312 阅读1分钟

区别:isInstance是instanceof的动态实现

1、class.isInstance(obj)

 ** @param obj   the object to check
 * @return  true if {@code obj} is an instance of this class
 *
 * @since JDK1.1
 */
public native boolean isInstance(Object obj);

用于判断对象obj是否是类class的一个实例对象,是instanceof的动态实现(编译器在运行时才执行),可用于反射、泛型中。
1、一个对象能转化为自身类的对象
2、一个对象能被转化为自身类的父类和实现的接口的对象
3、所有对象都能转化为Object类的对象
4、凡是null有关的都是false

2、obj.instanceof(class)

用于判断对象obj是否是class类或其子类的对象
1、一个对象是自身类的一个对象
2一个对象是自身类父类和接口的一个对象
3、所有对象都是Object类的对象
4、凡是null有关的都是false