Back to questions
Junior — Middle
53
Можешь перечислить ключевые характеристики функциональных интерфейсов в программировании?
Answer from AI
sobes.tech AI
Функциональные интерфейсы в Java — это интерфейсы с ровно одним абстрактным методом, что позволяет использовать их как целевые типы для лямбда-выражений и ссылок на методы.
Ключевые характеристики:
- Один абстрактный метод (SAM - Single Abstract Method).
- Могут содержать дефолтные методы с реализацией.
- Могут содержать статические методы.
- Аннотируются аннотацией
@FunctionalInterface(необязательно, но рекомендуется для проверки). - Позволяют писать более лаконичный и выразительный код с использованием лямбд.
Пример:
@FunctionalInterface
public interface Converter<F, T> {
T convert(F from);
}
// Использование
Converter<String, Integer> stringToInteger = Integer::valueOf;
int number = stringToInteger.convert("123");