无法为类编写复杂的通用定义

时间:2016-09-02 14:16:06

标签: java generics assertj

我正在尝试为自定义类

编写断言类
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!
   }

并且编译好

不,它没有编译好。我混淆了编译器和检查器。但转换的问题是什么?

0 个答案:

没有答案