Статические методы в интерфейсах java

Вот к примеру, методы default были введены с целью расширения возможностей интерфейса. Так как добавление обычных методов нарушило бы работоспособность всех программ имплементирующих этот интерфейс. Поэтому, default-методы - некий костыль, для решения этой задачи. Но вот смысл внедрения статических методов мне не ясен. Другими словами, какая была необходимость их внедрения в интерфейс java.


Ответы (1 шт):

Автор решения: Nowhere Man

Похожий вопрос на основном СО: What is the purpose of a static method in interface from Java 8?

Основные причины добавления статических методов:

  1. Статические методы являются частью интерфейса и не могут переопределяться в классах-реализациях -- это улучшает безопасность кода
  2. Статические методы -- удобная замена для утилитных (вспомогательных) методов (например, проверки на null, сортировки и т.д.) и утилитных классов типа Collections
  3. При помощи статических методов удобно создавать экземпляры соответствующих интерфейсов, например, Predicate.isEqual, Predicate.not (Java 11), Comparator.comparing и т.д.

Дополнительные ссылки:

→ Ссылка