intanceof()方法主要用来判断变量的类型。instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
object instanceof class 返回的是boolean 值。如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
例子:
String s=null;
//null值不是任何对象的实例,无论这个变量声明的是什么类型,皆返回false
System.out.println(s instanceof String);
//因为二者不存在继承的关系,所以编译会出错
System.out.println(new Test() instanceof String);
//编译没错误,但运行会出错
Test test = (Test)new Object();
废话少说,还是举几个例子:
public interface A{}
public class B implements A{
public static void main(String[] args){
A a=null;
B b=null;
if(a instanceof A){
System.out.println("true 1");
}
else{
System.out.println("false 1");
}
if(b instanceof B){
System.out.println("true 2");
}
else{
System.out.println("false 2");
}
a=new B();
if(a instanceof A){
System.out.println("true 3");
}
else{
System.out.println("false 3");
}
if(a instanceof B){
System.out.println("true 4");
}
else{
System.out.println("false 4");
}
b=new B();
if(b instanceof A){
System.out.println("true 5");
}
else{
System.out.println("false 5");
}
if(b instanceof B){
System.out.println("true 6");
}
else{
System.out.println("false 6");
}
}
}
输出结果是:
false 1
false 2
true 3
true 4
true 5
true 6
|