Точнее, функциональный интерфейс определяется как любой интерфейс, который имеет ровно один абстрактный метод.
Затем он переходит к примерам, одним из которых является интерфейс Comparator:
Код: Выделить всё
public interface Comparator {
int compare(T o1, T o2);
boolean equals(Object obj);
}
Мне удалось проверить, что я могу использовать лямбда-функцию вместо аргумента Comparator, и она работает (т. е. Collections.sort(list , (a, b) -> a-b)).
Но в интерфейсе Comparator методы сравнения и равенства являются абстрактными, что означает, что он имеет два абстрактных метода . Так как же это может работать, если определение требует, чтобы интерфейс имел ровно один абстрактный метод? Что мне здесь не хватает?
Подробнее здесь: https://stackoverflow.com/questions/146 ... -in-java-8
Мобильная версия