instanceof 严格来说是 Java 中的一个双目运算符,用来测试一个对象是否为一个类的实例,具体用法为:
boolean result = object instanceof Class
其中 object 为一个对象,Class 表示一个类或者一个接口,当 object 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果 result 都返回 true,否则返回 false。
Tips:编译器会检查 object 是否能转换成右边的 Class 类型,如果不能转换则直接报错,如果不能确定其类型,则编译通过,具体类型则看运行时确定。
以下讲一下注意事项:
1、object 不能是基本类型,必须为引用类型
int i = 1; System.out.println(i instanceof Object); //编译不通过 会报错(Inconvertible types; cannot cast 'int' to 'java.lang.Object') System.out.println(i instanceof Integer); //编译不通过 会报错(Inconvertible types; cannot cast 'int' to 'java.lang.Integer')
instanceof 运算符只能用作对象的判断。
2、object 为 Class 类的实例对象
Double d = new Double(1); System.out.println(d instanceof Double); // true
这是最普遍的一种用法。
完结!



