public class NullSafeComparator<T>
extends java.lang.Object
implements java.util.Comparator<T>
Comparable
Modifier and Type | Field and Description |
---|---|
private java.util.Comparator<T> |
nonNullComparator |
static NullSafeComparator |
NULLS_HIGH
A shared default instance of this comparator, treating nulls higher
than non-null objects.
|
static NullSafeComparator |
NULLS_LOW
A shared default instance of this comparator, treating nulls lower
than non-null objects.
|
private boolean |
nullsLow |
Modifier | Constructor and Description |
---|---|
private |
NullSafeComparator(boolean nullsLow)
Create a NullSafeComparator that sorts
null based on
the provided flag, working on Comparables. |
|
NullSafeComparator(java.util.Comparator<T> comparator,
boolean nullsLow)
Create a NullSafeComparator that sorts
null based on the
provided flag, decorating the given Comparator. |
public static final NullSafeComparator NULLS_LOW
public static final NullSafeComparator NULLS_HIGH
private final java.util.Comparator<T> nonNullComparator
private final boolean nullsLow
private NullSafeComparator(boolean nullsLow)
null
based on
the provided flag, working on Comparables.
When comparing two non-null objects, their Comparable implementation will be used: this means that non-null elements (that this Comparator will be applied to) need to implement Comparable.
As a convenience, you can use the default shared instances:
NullSafeComparator.NULLS_LOW
and
NullSafeComparator.NULLS_HIGH
.
nullsLow
- whether to treat nulls lower or higher than non-null objectsComparable
,
NULLS_LOW
,
NULLS_HIGH
public NullSafeComparator(java.util.Comparator<T> comparator, boolean nullsLow)
null
based on the
provided flag, decorating the given Comparator.
When comparing two non-null objects, the specified Comparator will be used. The given underlying Comparator must be able to handle the elements that this Comparator will be applied to.
comparator
- the comparator to use when comparing two non-null objectsnullsLow
- whether to treat nulls lower or higher than non-null objectspublic boolean equals(java.lang.Object obj)
equals
in interface java.util.Comparator<T>
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object