instanceof简单介绍
官方说明是:判断左边的对象是不是右边对象类的实例
意思是说条件操作数类型int和int不兼容
instanceof左边不能是基本类型,需要是引用类型
1 2 3 4 5 6 7 8 | 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的部分伪代码如下
1 2 3 4 5 6 7 8 9 10 11 | 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的规则,你必须这样。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异