• 如何避免在父类转换到子类时发生java.lang.ClassCastException


    在父类转换到子类时会发生ClassCastException异常,当你面对一个工程时成千上百的类时,

    是不太容易发现类之间的关系的,所以即使知道该原则,有时候还是避免不了,那应该如何处理呢:

    SuperClass

    public class SuperClass {
        private String name;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }

    SubClass

    public class SubClass extends SuperClass {
        private String performance;
        public String getPerformance() {
            return performance;
        }
     
        public void setPerformance(String performance) {
            this.performance = performance;
        }
    }

    测试

    public static void main(String[] args) {
            SuperClass superClass = new SuperClass();
            SubClass subClass = (SubClass) superClass;
            subClass.setName("abc");
            System.out.println(subClass.getName());
        }

    上述代码如约抛出了ClassCastException,怎么避免?

    在每次进行强制转换时使用instanceof判断一下是否存在关系,然后再进行转换。

    if(superClass instanceof SubClass){
            subClass = (SubClass) superClass;
            subClass.setName("abc");
            System.out.println(subClass.getName());
        }

    即当每次想把一个对象转换为另一个类的实例的时候,先判断该对象是否是目标类的一个实例,

    这样就能避免这样的错误。

  • 相关阅读:
    Android进程启动
    Android 系统Framework
    每日一问 AIDL
    Android性能优化
    Android启动优化
    Android绘制优化
    Android布局优化三剑客#
    android性能优化全方面解析(一)
    Android网络
    Android四大组件
  • 原文地址:https://www.cnblogs.com/leilong/p/9329752.html
Copyright © 2020-2023  润新知