Java Type Casting Problem
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicates:
How to Cast a Vectorto Vector in Java?
IsList<Dog> a subclass ofList<Animal> ? Why aren't Java's generics implicitly polymorphic?
我对Java类型的铸造有一个逻辑上的问题。我有一个扩展类B的类A,因此我可以有一个如下的语句
Java泛型不支持协方差,因此EDCOX1 OR 0不扩展EDCOX1 OR 1
像这样想;
如果
现在,如果你能把它投射到一个
这没什么意义,所以编译器不允许这样做。正如@amit所说,共同方差就是这个名字。
查看此日志
变量的类型必须与传递给实际对象类型的类型匹配。
当涉及到泛型类型的多态性时,Java不允许您如下:
1 2 3 |
这是因为在编译时,编译器摆脱了泛型类型(通过称为类型擦除的东西),并且在前Java 5代码中使用了它。这让人困惑,因为它与数组的行为不同。使用数组,可以执行以下操作:
1 | A[] myArr = new B[10]; |
但对于仿制药,情况并非如此。同样,当涉及到泛型时,变量的类型必须与传递给实际对象类型的类型匹配。
希望有帮助!