Instanceof关键字用法(Java基础)
【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!
博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!
吾等采石之人,应怀大教堂之心,愿你们奔赴在各自的热爱中…
本篇整理了一点关于instanceof 的知识点,一起学习一下!
instanceof 是 Java 的一个二元操作符,类似于 ==,>,< 等操作符。
Java中,instanceof运算符的前一个操作符是一个引用变量,后一个操作数通常是一个类(可以是接口),用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。如果是返回true,否则返回false。
instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。
以下实例创建了 testObjectClass() 方法来演示 Java instanceof 关键字用法:
public class TestInstanceof {
public static void main(String[] args) {
Object testObject = new ArrayList<>();
testObjectClass(testObject);
}
public static void testObjectClass(Object o) {
if (o instanceof Vector) {
System.out.println("对象是 java.util.Vector 类的实例");
} else if (o instanceof ArrayList) {
System.out.println(o instanceof Vector);
System.out.println(o instanceof ArrayList);
System.out.println("对象是 java.util.ArrayList 类的实例");
} else {
System.out.println("对象是 " + o.getClass() + " 类的实例");
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
输出结果
false
true
对象是 java.util.ArrayList 类的实例
Process finished with exit code 0
- 1
- 2
- 3
- 4
- 5
instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:
boolean result = obj instanceof Class
- 1
其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。
创建person类
public class Person {
}
- 1
- 2
- 3
创建Student类
public class Student extends Person {
}
- 1
- 2
测试类:结果附后面
public class TestInstanceof {
public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Student();
Student m1 = new Student();
System.out.println(p1 instanceof Student);//false
System.out.println(p2 instanceof Student);//true
System.out.println(m1 instanceof Student);//true
System.out.println(p1 instanceof List);//false
System.out.println(p1 instanceof List<?>);//false
System.out.println(p1 instanceof String);//编译报错
System.out.println(p1 instanceof List<Person>);//编译报错
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定。
小结:instanceof是Java语言中的一个二元运算符,它的作用是:判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例,即它左边的对象是否是它右边的类的实例,该运算符返回boolean类型的数据。
The best investment is to invest in yourself.
2020.11.29 愿你们奔赴在自己的热爱里!
文章来源: blessing.blog.csdn.net,作者:辰兮要努力,版权归原作者所有,如需转载,请联系作者。
原文链接:blessing.blog.csdn.net/article/details/110307446
- 点赞
- 收藏
- 关注作者
评论(0)