Встречается на собеседованиях • сегодня

Что дает @FunctionalInterface

@FunctionalInterface — это аннотация, которая указывает, что интерфейс предназначен для использования в лямбда-выражениях и ссылках на методы. Такой интерфейс должен содержать ровно один абстрактный метод (SAM — Single Abstract Method).

Пример:

java
@FunctionalInterface
interface Greeting {
    void sayHello(String name);
}

public class Main {
public static void main(String[] args) {
Greeting greet = name -> System.out.println("Hello, " + name);
greet.sayHello("Alice"); // Выведет: Hello, Alice
}
}

text

**Что дает аннотация:**  
1. **Проверка компилятором**: если в интерфейсе больше или меньше одного абстрактного метода — будет ошибка компиляции.  
2. **Явное указание на назначение**: делает код понятнее, показывая, что интерфейс предназначен для лямбд.  

**Примечание**: аннотация не обязательна, но рекомендуется для ясности. Даже без нее интерфейс с одним методом считается функциональным.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы