java - ClassCastException 冒险

标签 java classcastexception

我有 -

class A {
    // contains certain set() and get() methods
}

class B extends A {
    public A getAotherMethod() {
      A a = new A();
      // Contains some logic
      return a
      }
}

class C extends B {
    // contains certain set() and get() methods
}

class D {
    public Object getMethod() {

      B b = new B();
      // Contains some logic
      return b.getAnotherMethod()
     }
}


public static void main(String[] args) {
    A a = new A();
    B b = new B();
    C c = new C();
    D d = new D();
    c = (C) d.getMethod(); // This is giving me ClassCastException
}

最佳答案

d.getMethod();

这将在内部调用b.getAnotherMethod(),其中有

A a = new A();
// Contains some logic
return a

A 类的对象无法转换为C 类

我们可以将子类对象分配给父类(super class)引用,但我们不能将父类(super class)对象分配给子类引用,什么是在这种情况下由您完成。

关于java - ClassCastException 冒险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10006106/

相关文章:

java - 将 ArrayList<String[]> 转换为 String[][] 或 Object[][]

java - 更改自定义组件 JTable 的 LookAndFeel

java - ClassCastException:java.lang.Exception: mapred 中的 java.lang.ClassCastException

java - 具有前瞻功能的正则表达式性能/速度较差

android - 接收由 ImageButton 引起的 Class Cast Exception

java - 使用 try and catch 请求 Android 运行时权限

java - 损坏的管道将数据 block 发送到 chrome,仅通过范围请求流式传输 mp4

java - 当我使用泛型方法时抛出类转换异常

java - 循环运行 5 分钟

java - 重载包含不同路径变量类型的 RestController 方法