java关键字 instanceof

南笙酒味 提交于 2019-11-26 09:59:08

instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:

boolean result = obj instanceof Class

  其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false

  注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定

1、obj 必须为引用类型,不能是基本类型

int i = 0; System.out.println(i instanceof Integer); //编译不通过       System.out.println(i instanceof Object); //编译不通过

instanceof 运算符只能用作对象的判断

2、obj 为 null

System.out.println( null instanceof Object); //false

如果 obj 为 null,那么将返回 false

3、obj 为 class 类的实例对象

Integer integer = new Integer( 1 ); System.out.println(integer instanceof Integer); //true

最普遍的一种用法

4、obj 为 class 接口的实现类

ArrayList arrayList = new ArrayList(); System.out.println(arrayList instanceof List); //true

或者反过来也是返回 true

List list = new ArrayList(); System.out.println(list instanceof` `ArrayList);``//true

5、obj 为 class 类的直接或间接子类

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!