[size=medium] Java中instanceof是一个比较常用的二元操作符,类同于“>”“==”等逻辑运算符。特殊一点,它同时也是Java的保留关键字。其作用是测试其左边的对象是否是其右边的类的实例,返回boolean类型的数据。例如:[/size]
[size=medium] 在此,我们声明一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是String类的一个实例,运行结果返回true,也就是说strTest是String的一个实例。
需要强调的是,用instanceof来判断类的类型,是发生在编译期而不是在运行期,相比多态的使用效率会更高。例如在后边追加一句:[/size]
[size=medium] 编译器会提示Incompatible conditional operand types String and Integer错误,将问题扼杀在摇篮中。[/size]
public class InstanceofTest {
public static void main(String[] args) {
String strTest = "test";
System.out.println(strTest instanceof String);
}
}
[size=medium] 在此,我们声明一个String对象引用,指向一个String对象,然后用instancof来测试它所指向的对象是否是String类的一个实例,运行结果返回true,也就是说strTest是String的一个实例。
需要强调的是,用instanceof来判断类的类型,是发生在编译期而不是在运行期,相比多态的使用效率会更高。例如在后边追加一句:[/size]
public class InstanceofTest {
public static void main(String[] args) {
String strTest = "test";
System.out.println(strTest instanceof String);
System.out.println(strTest instanceof Integer);
}
}
[size=medium] 编译器会提示Incompatible conditional operand types String and Integer错误,将问题扼杀在摇篮中。[/size]