CombinedComparatorImpl implements CombinedComparator<ENTITY> { @Override public CombinedComparator<ENTITY> reversed() { return new CombinedComparatorImpl<>(comparators.stream() .map(FieldComparator::reversed) .collect(Collectors.toList()) ); } CombinedComparatorImpl(
            final List<FieldComparator<? super ENTITY>> comparators); @Override Stream<FieldComparator<? super ENTITY>> stream(); @Override int size(); @Override int compare(ENTITY o1, ENTITY o2); @Override CombinedComparator<ENTITY> reversed(); @Override Comparator<ENTITY> thenComparing(Comparator<? super ENTITY> other); @Override Comparator<ENTITY> thenComparing(
            final Function<? super ENTITY, ? extends U> keyExtractor,
            final Comparator<? super U> keyComparator); @Override Comparator<ENTITY> thenComparing(Function<? super ENTITY, ? extends U> keyExtractor); @Override Comparator<ENTITY> thenComparingInt(ToIntFunction<? super ENTITY> keyExtractor); @Override Comparator<ENTITY> thenComparingLong(ToLongFunction<? super ENTITY> keyExtractor); @Override Comparator<ENTITY> thenComparingDouble(ToDoubleFunction<? super ENTITY> keyExtractor); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }
@Test void reversed() throws Exception { comparatorsAndReverses().forEachOrdered(comp -> { final boolean reversed = comp.isReversed(); assertEquals(!reversed, comp.reversed().isReversed()); }); }