码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:数值   als   特殊   成功   运行时   out   继承   实例   print   

   我们在编写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的使用以及与引用类型的强制类型转换的关系

标签:数值   als   特殊   成功   运行时   out   继承   实例   print   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!