Class SerializableComparatorWrapperClass<T>

  • Type Parameters:
    T - comparable type
    All Implemented Interfaces:
    Serializable, Comparator<T>, SerializableComparator<T>

    public class SerializableComparatorWrapperClass<T>
    extends Object
    implements SerializableComparator<T>
    Wrapper for a non-serializable subclass of Comparator, such as Collator. This way you can still use such comparators in a serializable way. This wrapper calls the given SerializableSupplier to retrieve a delegate Comparator which it uses for all calls to its compare(Object, Object)-method. It caches the retrieved Comparator in a transient field for efficiency. Usage example:
     SerializableComparator<Object> collator = new SerializableComparatorWrapper<>(() -> Collator.getInstance(Locale.UK));
     SerializableComparator<Object> objectComparator = SerializableComparator.comparing(Object::toString, collator);
     
    (Note that Collator is an instance of Comparator typed with Object, not with a generic type variable.)
    Author:
    haster
    See Also:
    Serialized Form