Class SerializableComparatorWrapperClass<T>
- java.lang.Object
-
- org.danekja.java.misc.serializable.SerializableComparatorWrapperClass<T>
-
- Type Parameters:
T- comparable type
- All Implemented Interfaces:
java.io.Serializable,java.util.Comparator<T>,SerializableComparator<T>
public class SerializableComparatorWrapperClass<T> extends java.lang.Object implements SerializableComparator<T>
Wrapper for a non-serializable subclass ofComparator, such asCollator. This way you can still use such comparators in a serializable way. This wrapper calls the givenSerializableSupplierto retrieve a delegateComparatorwhich it uses for all calls to itscompare(Object, Object)-method. It caches the retrievedComparatorin a transient field for efficiency. Usage example:
(Note that Collator is an instance of Comparator typed with Object, not with a generic type variable.)SerializableComparator<Object> collator = new SerializableComparatorWrapper<>(() -> Collator.getInstance(Locale.UK)); SerializableComparator<Object> objectComparator = SerializableComparator.comparing(Object::toString, collator);
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private SerializableSupplier<java.util.Comparator<T>>comparatorSupplierprivate java.util.Comparator<T>delegateprivate static longserialVersionUID
-
Constructor Summary
Constructors Constructor Description SerializableComparatorWrapperClass(SerializableSupplier<java.util.Comparator<T>> comparatorSupplier)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompare(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
equals, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Methods inherited from interface org.danekja.java.misc.serializable.SerializableComparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
comparatorSupplier
private SerializableSupplier<java.util.Comparator<T>> comparatorSupplier
-
delegate
private transient java.util.Comparator<T> delegate
-
-
Constructor Detail
-
SerializableComparatorWrapperClass
public SerializableComparatorWrapperClass(SerializableSupplier<java.util.Comparator<T>> comparatorSupplier)
-
-