diff --git a/spring-core/src/main/java/org/springframework/util/comparator/Comparators.java b/spring-core/src/main/java/org/springframework/util/comparator/Comparators.java index 607f82371d..a061b498fb 100644 --- a/spring-core/src/main/java/org/springframework/util/comparator/Comparators.java +++ b/spring-core/src/main/java/org/springframework/util/comparator/Comparators.java @@ -39,7 +39,7 @@ public abstract class Comparators { /** * Return a {@link Comparable} adapter which accepts * null values and sorts them lower than non-null values. - * @see Comparator#nullsLast(Comparator) + * @see Comparator#nullsFirst(Comparator) */ public static Comparator nullsLow() { return nullsLow(comparable()); @@ -48,16 +48,16 @@ public abstract class Comparators { /** * Return a decorator for the given comparator which accepts * null values and sorts them lower than non-null values. - * @see Comparator#nullsLast(Comparator) + * @see Comparator#nullsFirst(Comparator) */ public static Comparator nullsLow(Comparator comparator) { - return Comparator.nullsLast(comparator); + return Comparator.nullsFirst(comparator); } /** * Return a {@link Comparable} adapter which accepts * null values and sorts them higher than non-null values. - * @see Comparator#nullsFirst(Comparator) + * @see Comparator#nullsLast(Comparator) */ public static Comparator nullsHigh() { return nullsHigh(comparable()); @@ -66,10 +66,10 @@ public abstract class Comparators { /** * Return a decorator for the given comparator which accepts * null values and sorts them higher than non-null values. - * @see Comparator#nullsFirst(Comparator) + * @see Comparator#nullsLast(Comparator) */ public static Comparator nullsHigh(Comparator comparator) { - return Comparator.nullsFirst(comparator); + return Comparator.nullsLast(comparator); } } diff --git a/spring-core/src/test/java/org/springframework/util/comparator/ComparatorsTest.java b/spring-core/src/test/java/org/springframework/util/comparator/ComparatorsTest.java new file mode 100644 index 0000000000..930f556caa --- /dev/null +++ b/spring-core/src/test/java/org/springframework/util/comparator/ComparatorsTest.java @@ -0,0 +1,51 @@ +/* + * Copyright 2002-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.util.comparator; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Tests for {@link Comparators} + */ +class ComparatorsTest { + + @Test + void shouldCompareWithNullsLow() { + assertThat(Comparators.nullsLow().compare(null, "boo")).isNegative(); + assertThat(Comparators.nullsLow().compare(null, null)).isZero(); + } + + @Test + void shouldCompareWithNullsLowAndComparator() { + assertThat(Comparators.nullsLow(String::compareTo).compare(null, "boo")).isNegative(); + assertThat(Comparators.nullsLow(String::compareTo).compare(null, null)).isZero(); + } + + @Test + void shouldCompareWithNullsHigh() { + assertThat(Comparators.nullsHigh().compare(null, "boo")).isPositive(); + assertThat(Comparators.nullsHigh().compare(null, null)).isZero(); + } + + @Test + void shouldCompareWithNullsHighAndComparator() { + assertThat(Comparators.nullsHigh(String::compareTo).compare(null, "boo")).isPositive(); + assertThat(Comparators.nullsHigh(String::compareTo).compare(null, null)).isZero(); + } +} \ No newline at end of file