updated 8001667: Comparator combinators and extension methods (original) (raw)

Paul Sandoz paul.sandoz at oracle.com
Wed Mar 6 09:51:36 UTC 2013


Hi Henry,

Minor thing.

In Comparator:

194 * @param other the other comparator used when equals on this. 195 * @throws NullPointerException if the argument is null. 196 * @since 1.8 197 */ 198 default Comparator thenComparing(Comparator<? super T> other) { 199 return Comparators.compose(this, other); 200 }

Perhaps:

@param other the other comparator to be used when this comparator compares two objects that are equal @throws NullPointerException if the argument is null. @since 1.8 @return A lexicographic order comparator composed of this and then the other comparator

In Comparators:

241 * @param the element type to be compared 242 * @param first the first comparator 243 * @param second the secondary comparator used when equals on the first 244 */ 245 public static Comparator compose(Comparator<? super T> first, Comparator<? super T> second) { 246 Objects.requireNonNull(first); 247 Objects.requireNonNull(second); 248 return (Comparator & Serializable) (c1, c2) -> { 249 int res = first.compare(c1, c2); 250 return (res != 0) ? res : second.compare(c1, c2); 251 }; 252 }

@param second the second comparator to be used when the first comparator compares two objects that are equal @return A lexicographic order comparator composed of the first and then the second comparator

Paul.

On Mar 5, 2013, at 8:46 PM, Henry Jen <henry.jen at oracle.com> wrote:

Hi,

Another update to reflect functional interface renames involved in the API, and a bug fix for a regression found earlier. CCC had been approved. Can we get it reviewed and pushed? [1] http://cr.openjdk.java.net/~henryjen/ccc/8001667.4/webrev Cheers, Henry



More information about the core-libs-dev mailing list