Существует стандартный способ преобразования java.util.function, Consumer <T> в java.util.function.Function <T, Void>

У меня есть Consumer<T>, который я бы хотел преобразовать в Function<T, Void>.

Я мог бы достичь этого, используя

public <T> Function<T, Void> consumerToFunction(Consumer<T> consumer)
{
    return x -> {
        consumer.accept(x);
        return null;
    };
}

Но я подозреваю, что что-то вроде этого может уже существовать в JDK или, возможно, в общей библиотеке.

Ответы

Ответ 1

Похоже, вам нужно адаптировать Consumer<T> к Function<T, R>. Вы создали хороший пример Шаблон адаптера.

[T] шаблон адаптера - это шаблон проектирования программного обеспечения, который позволяет использовать интерфейс существующего класса из другого интерфейса.

Вы позволяете использовать Consumer из Function.

Я не знаю JDK встроенного конвертера между функциональными интерфейсами, но это, кажется, хороший способ применения стандартного шаблона для решения вашей проблемы.