org.springframework.util.comparator

## Class NullSafeComparator<T>

- java.lang.Object
- - org.springframework.util.comparator.NullSafeComparator<T>

All Implemented Interfaces:
  Comparator<T>

    public class NullSafeComparator<T>
    extends Object
    implements Comparator<T>

A Comparator that will safely compare nulls to be lower or higher than other objects. Can decorate a given Comparator or work on Comparables.

Since:
  1.2.2
Author:
  Keith Donald, Juergen Hoeller
See Also:
  `Comparable`

### Field Summary

Fields
`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.

### Constructor Summary

Constructors
Constructor and Description
`NullSafeComparator(Comparator<T> comparator, boolean nullsLow)` Create a NullSafeComparator that sorts `null` based on the provided flag, decorating the given Comparator.

### Method Summary

Methods
`int` `compare(T o1, T o2)`
`boolean` `equals(Object obj)`
`int` `hashCode()`
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### NULLS_LOW

    public static final NullSafeComparator NULLS_LOW

A shared default instance of this comparator, treating nulls lower than non-null objects.

#### NULLS_HIGH

    public static final NullSafeComparator NULLS_HIGH

A shared default instance of this comparator, treating nulls higher than non-null objects.

### Constructor Detail

#### NullSafeComparator

    public NullSafeComparator(Comparator<T> comparator,
                      boolean nullsLow)

Create a NullSafeComparator that sorts `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.

Parameters:
  `comparator` - the comparator to use when comparing two non-null objects
  `nullsLow` - whether to treat nulls lower or higher than non-null objects

### Method Detail

#### compare

    public int compare(T o1,
              T o2)

Specified by:
  `compare` in interface `Comparator<T>`

#### equals

    public boolean equals(Object obj)

Specified by:
  `equals` in interface `Comparator<T>`
Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`