I have a Consumer<T>
that I'd like to convert into a Function<T, Void>
.
I could achieve that by using
public <T> Function<T, Void> consumerToFunction(Consumer<T> consumer)
{
return x -> {
consumer.accept(x);
return null;
};
}
But I suspect that something like that might already exist in the JDK or perhaps in a common library.
It looks like you need to adapt a Consumer<T>
to a Function<T, R>
. You have created a good example of the Adapter Pattern.
[T]he adapter pattern is a software design pattern that allows the interface of an existing class to be used from another interface.
You are letting a Consumer
be used from a Function
.
I know of no JDK built-in converter between functional interfaces, but this appears to be a good way of applying a standard pattern to solve your problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With