instanceof简单介绍

官方说明是:判断左边的对象是不是右边对象类的实例

 

 

 意思是说条件操作数类型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的规则,你必须这样。

posted @ 2023-03-08 13:04  不忘初心2021  阅读(18)  评论(0编辑  收藏  举报