Подтвердить что ты не робот

Вызов конструктора с параметром внутри потока 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));
}
4b9b3361

Ответ 1

Вы не можете использовать ссылки на методы метода, если хотите передать дополнительные захваченные значения в качестве параметров. Вместо этого вам нужно будет использовать выражение лямбда:

MySortedSet<E> :: new

= >

() -> new MySortedSet<E>(c)