• Java 强制类型转换(类转换注意事项)


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

    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运算符.



  • 相关阅读:
    RabbitMQ学习之:(一)初识、概念及心得
    【转】2015年最适合去的7类互联网创业公司
    java性能
    人生中一定要坚守的格言
    AJAX学习
    三层架构
    Linux下配置文件的位置
    进程池
    Python性能测试
    彼得原则、墨菲原则、帕金森定律分别是指的什么?
  • 原文地址:https://www.cnblogs.com/aikongmeng/p/3697326.html
Copyright © 2020-2023  润新知