instanceof和typeof的区别是什么
999+|...条评论
在Java中,instanceof
和typeof
是两个不同的操作符。
instanceof
操作符:
instanceof
用于判断一个对象是否属于某个特定类型或其子类型。
语法格式为:object instanceof type
,其中object
是要判断的对象,type
是要判断的类型。
返回一个布尔值,如果对象是指定类型或该类型的子类实例,则返回true
,否则返回false
。
instanceof
主要用于运行时类型判断,可以在程序中根据对象的实际类型执行相应的操作。
示例代码:
class Animal {}
class Dog extends Animal {}
pubpc class Main {
pubpc static void main(String[] args) {
Animal animal = new Dog();
if (animal instanceof Animal) {
System.out.println("animal是Animal类型");
}
if (animal instanceof Dog) {
System.out.println("animal是Dog类型");
}
}
}
2、typeof
操作符:
在Java中,并没有像typeof
这样的操作符。
typeof
在其他编程语言(如JavaScript)中存在,用于获取操作数的数据类型。
在Java中,我们可以使用getClass()
方法来获取对象的运行时类型,或者使用getSimpleName()
方法获取类的简单名称。
示例代码:
pubpc class Main {
pubpc static void main(String[] args) {
String str = "Hello";
Class> strClass = str.getClass();
System.out.println(strClass.getSimpleName()); // 输出:String
}
}
综上所述,instanceof
操作符用于判断对象的类型,而typeof
在Java中不存在,我们可以使用getClass()
方法来获取对象的运行时类型。