aro_tech
aro_tech

Reputation: 1143

Generics issue with AssertJ Condition for a typed List

I ran into this issue when exploring uses of the Condition class in AssertJ 3.5.2 on Java 8. I can create a Condition instance for a generically-typed List, but I get error messages in Eclipse when I try to use it :

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

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

The error message I get is :

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>>)

Is there a solution for this or another approach in AssertJ to do a holistic check of a list (not just item by item but a check based on sequence or aggregation)?

Upvotes: 1

Views: 1014

Answers (1)

Joel Costigliola
Joel Costigliola

Reputation: 7066

I believe that declaring your condition like this should solve the compile error :

Condition<? super List<? extends MyBean>> listCond = new Condition<>(list -> true, "test");

Upvotes: 2

Related Questions