1、
class MyObject {
}
public class ObjectTest {
public static void main(String[] args) {
Object obj = new Object();
Object obj1 = new MyObject();
Object obj2 = null;
if (obj instanceof Object) {
System.out.println("obj指向的对象是Object类型的一个实例");
}
if (obj1 instanceof Object) {
System.out.println("obj1指向的对象是Object类型的一个实例");
}
if (obj1 instanceof MyObject) {
System.out.println("obj1指向的对象是MyObject类型的一个实例");
}
if (obj2 instanceof Object) {
System.out.println("obj2指向的对象是Object类型的一个实例");
}
}
运行结果如下:
2、
class MyObject {
}
public class ObjectTest {
public static void main(String[] args) {
Object obj = new Object();
MyObject mobj;
System.out.println("obj: "+obj);
if ( obj instanceof MyObject ) { //obj必须初始化
mobj = (MyObject)obj; //若obj是MyObject类型的一个实例,就把它的引用赋给mboj
System.out.println("if结构1有执行。");
}
if ( obj instanceof Object ) {
mobj = (MyObject)obj; //若obj是Object类型的一个实例,就把它的引用转化成MyObject,赋给mobj
System.out.println("if结构2有执行。");
}
System.out.println("obj: "+obj);
//System.out.println("mobj: "+mobj);
System.out.println("程序在这里结束。");
}
编译结果如下:
程序没有执行if结构1、而执行了if结构2,但是,在执行的时候抛出了类型转换的异常。