Вызов конструктора с параметром внутри потока Java с лямбдой
Я хочу вызвать конструктор для MySortedSet, который принимает параметр Comparator c как параметр. Как я могу изменить это, чтобы сделать это?
public MySortedSet<E> subSet(E fromElement, E toElement) {
return list.stream()
.filter(x -> (list.indexOf(x) <= list.indexOf(fromElement)
&& list.indexOf(x) < list.indexOf(toElement)))
.collect(Collectors.toCollection(MySortedSet<E> :: new));
}
Ответы
Ответ 1
Вы не можете использовать ссылки на методы метода, если хотите передать дополнительные захваченные значения в качестве параметров. Вместо этого вам нужно будет использовать выражение лямбда:
MySortedSet<E> :: new
= >
() -> new MySortedSet<E>(c)