Назад к вопросам
Middle
69
questionbank

Что вам известно о функциональных интерфейсах в Java 8 и выше?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Функциональный интерфейс — это интерфейс, содержащий только один абстрактный метод. Они используются для реализации лямбда-выражений и ссылок на методы. Могут иметь default и static методы.

Примеры встроенных функциональных интерфейсов в пакете java.util.function:

  • Predicate<T>: Принимает один аргумент типа T и возвращает булево значение.
    // public boolean test(T t);
    
  • Consumer<T>: Принимает один аргумент типа T и ничего не возвращает. Выполняет действие над аргументом.
    // public void accept(T t);
    
  • Supplier<T>: Не принимает аргументов и возвращает значение типа T.
    // public T get();
    
  • Function<T, R>: Принимает аргумент типа T и возвращает значение типа R.
    // public R apply(T t);
    

Аннотация @FunctionalInterface опциональна, но рекомендуется для проверки компилятором и ясности.

@FunctionalInterface
interface MyFunction {
    String process(String input);
    
    default void doNothing() {
        // Default method
    }
}