Страницы

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

четверг, 16 мая 2019 г.

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

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


Ответ

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

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

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