org.springframework.util.comparator

Class InstanceComparator<T>

  • java.lang.Object
    • org.springframework.util.comparator.InstanceComparator<T>
  • Type Parameters:
    T - the type of objects that may be compared by this comparator
    All Implemented Interfaces:
    java.util.Comparator<T>


    public class InstanceComparator<T>
    extends java.lang.Object
    implements java.util.Comparator<T>
    Compares objects based on an arbitrary class order. Allows objects to be sorted based on the types of class that they inherit, for example: this comparator can be used to sort a list Numbers such that Longs occur before Integers.

    Only the specified instanceOrder classes are considered during comparison. If two objects are both instances of the ordered type this comparator will return a 0. Consider combining with Comparator.thenComparing(Comparator) if additional sorting is required.

    Since:
    3.2
    Author:
    Phillip Webb
    See Also:
    Comparator.thenComparing(Comparator)
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      int compare(T o1, T o2) 
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Comparator

        comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
    • Constructor Detail

      • InstanceComparator

        public InstanceComparator(java.lang.Class<?>... instanceOrder)
        Create a new InstanceComparator instance.
        Parameters:
        instanceOrder - the ordered list of classes that should be used when comparing objects. Classes earlier in the list will be given a higher priority.
    • Method Detail

      • compare

        public int compare(T o1,
                           T o2)
        Specified by:
        compare in interface java.util.Comparator<T>