1

我正在尝试为我的自定义类编写断言类

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!
   }

它编译正常

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

4

0 回答 0