官方说明是:判断左边的对象是不是右边对象类的实例
意思是说条件操作数类型int和int不兼容
instanceof左边不能是基本类型,需要是引用类型
public class InstanceofTest { public static void main(String[] args) { Integer a =1; boolean result=a instanceof Integer; System.out.println(result); } }
当左边是null时,
判断LinkedList是不是List的实现类
instanceof的部分伪代码如下
boolean result; if (obj == null) { result = false; } else { try { T temp = (T) obj; // checkcast result = true; } catch (ClassCastException e) { result = false; } }
对应使用上就是
当obj是T的类或者是T的子类,返回true
第32行编译报错
报错信息翻译如下
因为Java在编译期间,所有的泛型信息都会被擦掉,例如List<Object>和List<String>,在编译后JVM只能看到list,这是java编译器为了避免错误发生的一种机制
更像一种java的规则,你必须这样。
标签:instanceof,obj,List,介绍,编译,报错,result,简单 From: https://www.cnblogs.com/q202105271618/p/17186741.html