Sobes.tech
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");