Hi, So I found myself writing some code which sets up a j.u.s.Stream processing pipeline where the stream can optionally be traced/logged via a peeking Consumer.
The default should be not to trace, in which case I initially set the Consumer to null. But then I need to check that trace != null when setting up the stream. This felt awkward.. Since related code was using Function.identity() as a "no mapping configured" default, I went looking for Consumer.empty(), only to learn that no such thing exists. I can of course just do () -> {}, but I think Consumer.empty() conveys the purpose a bit more clearly.. Is there some thought behind this not existing? Would it be worth adding? /** * Returns a consumer which performs no operation on its input argument * * @param <T> the type of the input argument * @return a Consumer which performs no operation on its input argument */ static <T> Consumer<T> empty() { return t -> {}; }