Junior — Middle
103
Peut-on définir une interface sans l'annotation @FunctionalInterface comme une interface fonctionnelle?
Réponse de l'IA
sobes.tech IA
Аннотация @FunctionalInterface в Java не обязательна для того, чтобы интерфейс считался функциональным. Главное условие — интерфейс должен содержать ровно один абстрактный метод.
Аннотация служит для явного указания и проверки этого факта компилятором, но даже без неё интерфейс с одним абстрактным методом можно использовать в лямбда-выражениях и методах, ожидающих функциональный интерфейс.
Пример:
interface MyFunction {
void apply(); // единственный абстрактный метод
}
MyFunction f = () -> System.out.println("Hello");
f.apply();
Здесь MyFunction — функциональный интерфейс без аннотации.