// 示例代码:instanceof在Java中的用法
public class InstanceOfExample {
static class Animal {}
static class Dog extends Animal {}
static class Cat extends Animal {}
public static void main(String[] args) {
Animal myDog = new Dog();
Animal myCat = new Cat();
// 使用 instanceof 检查对象是否是指定类型或其子类的实例
if (myDog instanceof Dog) {
System.out.println("myDog 是 Dog 类型的实例");
} else {
System.out.println("myDog 不是 Dog 类型的实例");
}
if (myCat instanceof Dog) {
System.out.println("myCat 是 Dog 类型的实例");
} else {
System.out.println("myCat 不是 Dog 类型的实例");
}
// 从 Java 16 开始,instanceof 可以结合模式匹配使用,简化代码
if (myDog instanceof Dog dog) {
System.out.println("myDog 是 Dog 类型的实例,并且可以直接使用变量 dog");
dog.makeSound(); // 假设 Dog 类有一个 makeSound 方法
}
}
}
class Dog extends InstanceOfExample.Animal {
public void makeSound() {
System.out.println("汪汪");
}
}
instanceof 关键字用于检查对象是否是指定类型或其子类的实例。myDog 和 myCat 都是 Animal 类型的引用,但实际指向的对象分别是 Dog 和 Cat 的实例。instanceof 可以判断 myDog 是否为 Dog 类型的实例,结果为 true;而 myCat 不是 Dog 类型的实例,结果为 false。instanceof 支持模式匹配,可以在检查类型的同时进行类型转换并赋值给一个新的变量,简化了代码。上一篇:java数组转成list
下一篇:java数组
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站