首页 > 其他 > 详细

instanceof的使用以及与引用类型的强制类型转换的关系

时间:2017-12-09 23:38:21      阅读:341      评论:0      收藏:0      [点我收藏+]

   我们在编写Java程序时,引用变量只能调用他编译时类型的方法,而不能调用他运行时类型的方法,但是如果需要调用运行时的类型的方法,则必须把它强制类型转换为运行时类型,因此,在进行类型转换时需要注意:

  1.基本类型之间的转换只能在数值类型之间进行,比如数值类型和布尔类型之间不能进行类型转换。

  2.引用类型之间的转换只能在具有继承关系的两个类型之间进行。

 第一点我们可以很容易理解,对于第二点,我们在编程时可能辨别不好是否具有继承关系,但是,别担心,Java语言给我们提供了方便,使用instanceof运算符判断是否可以成功转换,从而避免出现CLassCaseException异常,这样可以保证程序更加健壮。

  比如:

     if(obj instanceof String)

     {

       String str=(String)obj;

     }

  因此,接下来介绍instanceof的用法,instanceof的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类(也可以是一个接口,可以把接口理解为一种特殊的类),它用于判断前面的对象是否是后面的类,或者其子类、实现类的实例,如果是则返回true,不是返回false。注意,instanceof运算符前面操作数的编译时类型要么与后面的类相同,要么与后面的类具有父子继承关系。

  比如:

  Object  hello ="hello";

  System.out.println(hello instanceof Object);  //返回true

  System.out.println(hello instanceof Math); //返回false

instanceof的使用以及与引用类型的强制类型转换的关系

原文:http://www.cnblogs.com/ytt123/p/8012935.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!