本文共 1129 字,大约阅读时间需要 3 分钟。
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,但是,在执行的时候抛出了类型转换的异常。