java8 метод с двумя функциональными параметрами не работает - PullRequest
0 голосов
/ 09 июля 2019

Я хочу написать StreamUtils, но я нашел метод с двумя параметрами функционального интерфейса, который не работает

public static <T, R> List<R> mapList(Collection<T> data, Function<T, R> mapFunc, Predicate<R> filter) {
    return data.stream()
               .map(mapFunc).filter(s -> s != null && filter.test(s))
               .collect(Collectors.toList());
}

, когда я вызываю метод в моем UT: ошибка компиляции идеи

@Test
public void mapList() throws Exception {
    List<Integer> list = Lists.newArrayList(1, 2,3,4,5,6);
    StreamUtils.mapList(list, i -> i + 2, i -> i % 2 == 0);
}
...