为什么我不能classcastexception? E在这个例子中是指C,不是吗? B不是C,我认为我的演员必须为编译器工作。 我的错误在哪里?为什么我不能classcastexception?
public class A{
public static void main(String...s){
Monitor<C> m = new Monitor<C>();
C arg2 = new C();
B d = m.f(arg2);
System.out.println(d);
}
}
class B extends A{}
class C extends B{}
class Monitor<E extends B>{
public E f(E E){
return (E) new B();//Why this place didn't give me ClassCastException?
}
}
请清理你的源代码,它看起来很可怕。请尽量清楚问题,这很难理解。 – Polygnome
为什么独立监控?为什么不是M – vels4j