东莞网站建设星河,wordpress图片关联文章,网络营销和电子营销的区别,宁波标志设计公司目录
简介
示例
注意事项
应用场景 简介
instanceof 是 Java 的保留关键字也称为类型比较运算符#xff0c;因为它将实例与类型进行比较它的作用是测试它左边的对象是否是它右边的类的实例#xff0c;返回 boolean 的数据类型instanceof是Java中的二元运算符#xff0c…目录
简介
示例
注意事项
应用场景 简介
instanceof 是 Java 的保留关键字也称为类型比较运算符因为它将实例与类型进行比较它的作用是测试它左边的对象是否是它右边的类的实例返回 boolean 的数据类型instanceof是Java中的二元运算符左边是对象右边是类当对象是右边类或子类所创建对象时返回true否则返回false说明下类的实例包含本身的实例以及所有直接或间接子类的实例instanceof左边显式声明的类型与右边操作元必须是同种类或存在继承关系也就是说需要位于同一个继承树否则会编译错误基本语法
示例
首先我们将创建一个 Round 类接下来我们将创建一个扩展 Round 的 Ring 类然后我们可以使用instanceof来检查Ring的实例是否是Round类型
注意事项
左边的对象实例不能是基础数据类型左边的对象实例和右边的类不在同一个继承树上是不行的null用instanceof跟任何类型比较时都是false在 Java 中每个类都隐式继承自 Object 类因此对 Object 类型使用 instanceof 运算符将始终计算为 true
应用场景
instanceof一般用于对象类型强制转换在转换未知对象之前应始终使用 instanceof 检查这样做有助于避免运行时出现 ClassCastExceptionStream API – 在投射之前使用instanceof过滤类型我们经常使用 Stream 的 map() 方法将 A 类型集合转换为 B 类型集合如果类型转换是通过类型转换完成的我们可能需要在执行类型转换之前检查类型以避免 ClassCastException比如假设我们有一个 Round 实例流如上面的代码所示roundStream 对象包含两个 Ring 对象和一个 Circle 实例现在如果我们将 roundStream 转换为 Ring 列表而不检查类型则会引发 ClassCastException因为 Circle 不是 Ring但是如果我们在 map() 调用之前过滤 Ring 对象我们将得到预期的列表