博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 强制类型转换(类转换注意事项)
阅读量:5936 次
发布时间:2019-06-19

本文共 617 字,大约阅读时间需要 2 分钟。

将一个类型强制转换成另一个类型的过程被称为类型转换.例如:

double x =3.14;int y = (int)x;
将表达式x的值转换成整数类型,舍弃小数部分.

有时候也可能是类的对象引用的转换.

譬如: 

Manger boss = (Manger)staff[0];

我们知道如果将一个子类的引用赋给一个超类变量,是可以的. 但是反过来,必须进行类型转换.

但是转换的时候,可能出现"谎报"的ClassCastException异常.,如果没有捕获该异常,程序就会停止.

因此, 我们应该养成一个良好的编程习惯,在进行类型转换之前,先看一下是否能成功转换.

这个过程简单地使用instanceof运算符就可以实现.例如:

if(staff[0] instanceof Manger){  boss = (Manger)staff[0];  ...}
这样,如果转换不成功,编译器就不会进行这个转换.

综述:

  • 只能在继承层次内进行类型转换
  • 在将超类转换成子类之前,应该使用instanceof进行检查.
注:
x instanceof c 
如果x 为null, x instanceof c 不会产出异常,只是返回false,因为null没有引用任何对象.
一般情况下,应该尽量少用类型转换和instanceof运算符.

转载于:https://www.cnblogs.com/aikongmeng/p/3697326.html

你可能感兴趣的文章
mysql脚本1064 - You have an error in your SQL syntax; check the manual
查看>>
nessus 本地扫描(一)
查看>>
linux服务器磁盘陈列
查看>>
交换机配置模式
查看>>
python----tcp/ip http
查看>>
我的友情链接
查看>>
第一本docker书学习笔记1-3章
查看>>
一個典型僵尸網絡淺析
查看>>
vmware克隆Centos6.4虚拟机网卡无法启动问题
查看>>
dba学习
查看>>
asterisk配置
查看>>
GA操作步骤和技巧(二)——用户行为分析
查看>>
shell中while循环里使用ssh的注意事项
查看>>
SHELL获取计算机外网ip的几种写法
查看>>
博客正在搬迁中
查看>>
触发器与存储过程的区别
查看>>
我的友情链接
查看>>
centos搭建supervisor
查看>>
linux日志分割
查看>>
Samba再报安全漏洞
查看>>