Java instanceof用法

instanceof运算符用于判断某个对象是否是某个类或某个类的子类或接口的实现类的实例。

boolean flag = obj instanceof ClassName;

判断obj是否是ClassName的实例,或obj是否是ClassName子类的实例,或obj是否是ClassName的实现类的实例(接口是特殊的类)。

特别注意:obj必须与ClassName具有父子继承关系,否则编译会报错。

instanceof通常是用在强制类型转换的时候。首先判断obj是否是ClassName的子类,如果是就进行强制类型转换。

例如:

if (obj instanceof ClassName) {

        ClassNameparam  =  (ClassName)obj;

}

在例如String的源码中的equals(Object)方法,

Java instanceof用法