Страницы

Поиск по вопросам

пятница, 28 февраля 2020 г.

Почему java воспринмает интерфейс comparator как функциональный

#java #интерфейс #lambda #лямбда_выражение


Недавно ознакомился с лямбда-выражениями и узнал, что с их помощью можно реализовать
Comparator. Но мне не даёт покоя то, что в этом интерфейсе объявлено два не статических
и не реализованных по умолчанию метода: compare() и equals(). И несмотря на это, интерфейс
считается функциональным, и метод compare() может быть реализован с помощью лябда-выражений. 

Как так? Почему метод equals() не воспринимается?
    


Ответы

Ответ 1



Интерфейс Comparator функциональный, потому что equals() - относится к public-методу класcа Object. Интерфейсы объявляют абстрактные методы относящиеся к public методам Object, но обычно делают это неявным образом и эти методы не учитываются.

Комментариев нет:

Отправить комментарий