【发布时间】:2020-01-09 06:52:22
【问题描述】:
以下代码抛出ClassCastException:
线程“main”中的异常 java.lang.ClassCastException: 类 Child 不能转换为类 java.util.List(孩子在未命名的模块中 加载器“应用程序”; java.util.List 在 loader 的模块 java.base 中 'bootstrap') 在 Test.main(Test.java:20)
我真的不确定它为什么会这样。我想我写的代码是正确的。
public class Test {
public void a(ParentI... ss) {
}
public void a(List<ParentI> ss) {
}
public <R extends ParentI> R makeParent() {
ParentI ai = new Child();
return (R) ai;
}
public static void main(String[] args) {
Test al = new Test();
al.a(al.makeParent());
}
}
interface ParentI {
public void a();
}
class Parent implements ParentI {
public void a() {
System.out.println("Parent");
}
}
class Child extends Parent {
public void a(int t) {
System.out.println("child");
}
}
请帮助我理解这一点以及如何解决这个问题。
【问题讨论】:
-
完整的堆栈跟踪和发生异常的行会很有帮助。
-
请立即查看
-
其他人有这个例外还是只有我,我正在取消 intellij
-
仍然没有堆栈跟踪,也没有提示导致异常的行。
-
异常是在
al.a(al.makeParent());引起的
标签: java inheritance exception