Supplier<T> — это функциональный интерфейс в Java 8, определенный в пакете java.util.function. Он представляет собой поставщика результатов типа T.
Его основное назначение — отложенное вычисление. Supplier не принимает аргументов и имеет один единственный абстрактный метод get(), который возвращает значение типа T.
java
Применение:
- Отложенная инициализация: Ресурсы или значения вычисляются только тогда, когда они действительно нужны.
- Генерация значений: Используется для создания новых объектов или значений по требованию.
- Логирование с условием: Сообщения для лога могут генерироваться только если уровень логирования позволяет.
- Параметры методов: Может использоваться в качестве типа параметра метода, позволяя передавать логику генерации значения.
Преимущества:
- Производительность: Избегает ненужных вычислений, особенно если они дорогостоящие или их результат может не понадобиться.
- Чистота кода: Позволяет отделять логику генерации данных от логики их использования.
- Лямбда-выражения: Легко используется с лямбда-выражениями и ссылками на методы.
В отличие от других функциональных интерфейсов, таких как Consumer (принимает аргумент, ничего не возвращает) или Function (принимает аргумент, возвращает значение), Supplier просто предоставляет значение без входных данных.