Встретил странную конструкцию в классе Comparator подскажите что она з
Alexandr Demianiuk
Встретил странную конструкцию в классе Comparator подскажите что она значит?
public static <T, U extends Comparable<? super U>> Comparator comparing(
Function<? super T, ? extends U> keyExtractor)
{
Objects.requireNonNull(keyExtractor);
return (Comparator & Serializable)
(c1, c2) -> keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2));
}
Как такое можно писать, и как это работает: return (Comparator & Serializable)
xbox
Ответы:
Рыжая Морда
Значит, что возвращаемый объект реализует оба интерфейса.
Очередной синтаксический сахарок, заменяет где-то в стороне объявленный интерфейс, расширяющий оба указанных.
Детали на буржуинском языке
http://iteratrlearning.com/java/generics/2016/05/12/intersection-types-java-generics.html
|