我正在尝试为自定义类
编写断言类public class ChangeCollector<T>
extends ArrayList<ChangeEntry<T>>
我在写
public class ChangeCollectorAssert
<T, EA extends AbstractAssert<EA, ChangeEntry<T>>>
extends AbstractListAssert
<ChangeCollectorAssert<T, EA>, ChangeCollector<T>, ChangeEntry<T>, EA>
它发誓
Type parameter 'ChangeCollector' is not within its bound;
should implement 'java.util.List<? extends ChangeEntry<T>>'
但看起来它实现了List
,不是吗?
不能ArrayList<ChangeEntry<T>>
分配给List<? extends ChangeEntry<T>>
吗?
更新
我写了以下代码:
private static <T> void test01() {
List<? extends T> list1;
ChangeCollector<T> list2 = new ChangeCollector<T>();
list1 = list2; // ok!
}
并且编译好
不,它没有编译好。我混淆了编译器和检查器。但转换的问题是什么?