我有类A
,B
和where extends , extendsC
和extends 。D
B
A
C
A
D
A
我有以下ArrayList
每一个都包含一些元素:
ArrayList<B> b;
ArrayList<? extends A> mix = b;
我打算让变量mix
包含或类型B
的元素。我试图像这样添加一个类型的元素:C
D
C
mix
mix.add(anElementOfTypeC);
但是 IDE 不允许我这样做,它说:
anElementOfTypeC 不能通过调用转换方法转换为 CAP#1,其中 CAP#1 是一个新的类型变量:CAP#1 从捕获的 ? 扩展 A 扩展 A
我用对了<? extends A>
吗?我该如何解决这个问题?