Wie kann ich einen Strom von Komparatoren verketten und anwenden?

Ich habe einen Strom von unsortierten Elementen und einen Strom von Komparatoren. Ich möchte alle Komparatoren mit "thenComparing" (Multisort) auf den Stream anwenden. Gibt es einen eleganteren Weg, als den folgenden Code, um dies zu erreichen?

Stream unsorted = ...;
Stream<Comparator> comparators = ...;

Comparator compareFunc = comparators.reduce(null, (a, b) -> {
        if(a == null) {
            return b;
        }else {
            return  a.thenComparing(b); 
        }

    });

Stream result = unsorted.sorted(compareFunc);

Antworten auf die Frage(2)

Ihre Antwort auf die Frage