Общая проблема с условием AssertJ для типизированного списка

Я столкнулся с этой проблемой при изучении использования класса Condition в AssertJ 3.5.2 на Java 8. Я могу создать экземпляр 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 для целостной проверки списка (не только поэлементно, но и на основе последовательности или агрегации)?


person aro_tech    schedule 10.08.2016    source источник


Ответы (1)


Я считаю, что такое объявление вашего условия должно решить ошибку компиляции:

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