1

我在探索 Java 8 上 AssertJ 3.5.2 中 Condition 类的使用时遇到了这个问题。我可以为一般类型的 List 创建一个 Condition 实例,但是当我尝试使用它时在 Eclipse 中收到错误消息:

Condition<List<MyBean>> listCond =
        new Condition<>(list -> true, "test"); // OK

this.assertThat(myList).has(listCond); // DOES NOT COMPILE

我得到的错误信息是:

The method has(Condition<? super List<? extends MyBean>>) in the type 
AbstractListAssert<capture#8-of ?,List<? extends MyBean>,MyBean,ObjectAssert<MyBean>> is not 
applicable for the arguments (Condition<List<MyBean>>)

AssertJ 中是否有针对这种或另一种方法的解决方案来对列表进行整体检查(不仅仅是逐项检查,而是基于序列或聚合的检查)?

4

1 回答 1

2

我相信像这样声明你的条件应该可以解决编译错误:

Condition<? super List<? extends MyBean>> listCond = new Condition<>(list -> true, "test");
于 2016-08-10T10:07:11.283 回答