It would be nice to have some support for chaining converters:

public interface Converter<S, T> {
    // ...

    default <U> Converter<S, U> andThen(Converter<T, U> andThen) {
        return source -> andThen.convert(this.convert(source));
    }
}

Then, a user could more easily compose them:

Converter<A, B> aToB = ...;
Converter<B, C> bToC = ...;
Converter<A, C> aToC = aToB.andThen(bToC);

This is a modest improvement on:

Converter<A, C> aToC = source -> bToC.convert(aToB.convert(source));

in that code using andThen will read in the correct order, e.g. "do A then B" instead of "B.do(A.do)".

I'd be happy to submit a PR, if it's agreed that it's a reasonable improvement.

Comment From: jzheaux

@sbrannen, is this and its associated PR of interest?

Comment From: sbrannen

Oops. This one slipped through the cracks. We'll apply the PR to 5.3.


Superseded by #23379.