#java #интерфейс #lambda #лямбда_выражение
Недавно ознакомился с лямбда-выражениями и узнал, что с их помощью можно реализовать Comparator. Но мне не даёт покоя то, что в этом интерфейсе объявлено два не статических и не реализованных по умолчанию метода: compare() и equals(). И несмотря на это, интерфейс считается функциональным, и метод compare() может быть реализован с помощью лябда-выражений. Как так? Почему метод equals() не воспринимается?
Ответы
Ответ 1
Интерфейс Comparator функциональный, потому что equals() - относится к public-методу класcа Object. Интерфейсы объявляют абстрактные методы относящиеся к public методам Object, но обычно делают это неявным образом и эти методы не учитываются.
Комментариев нет:
Отправить комментарий