I have a Consumer
that I\'d like to convert into a Function
.
I could achieve that by using
public
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.
A standard way doesn't exist, but this should do the trick:
Function<T, Void> adapt(final Consumer<T> consumer) {
return t -> {
consumer.accept(t);
return null;
};
}
This is following the Adapter Pattern mentioned in the accepted answer from @rgettman.