Sobes.tech
Назад к вопросам
Junior — Middle
71

Можешь ли ты перечислить и объяснить основные функциональные интерфейсы, использующиеся в Java?

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

sobes.tech AI

В Java функциональные интерфейсы — это интерфейсы с одним абстрактным методом, которые можно использовать в лямбда-выражениях и ссылках на методы.

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

  • Function<T, R> — принимает объект типа T и возвращает объект типа R.

    Function<String, Integer> lengthFunc = s -> s.length();
    int len = lengthFunc.apply("Hello"); // 5
    
  • Consumer<T> — принимает объект типа T и ничего не возвращает (выполняет действие).

    Consumer<String> printer = s -> System.out.println(s);
    printer.accept("Hello");
    
  • Supplier<T> — не принимает аргументов, возвращает объект типа T.

    Supplier<Double> randomSupplier = () -> Math.random();
    double val = randomSupplier.get();
    
  • Predicate<T> — принимает объект типа T и возвращает boolean.

    Predicate<String> isEmpty = s -> s.isEmpty();
    boolean result = isEmpty.test(""); // true
    
  • UnaryOperator<T> — наследуется от Function, принимает и возвращает объект одного типа T.

  • BinaryOperator<T> — принимает два объекта типа T и возвращает объект типа T.

Эти интерфейсы позволяют писать компактный и выразительный код, особенно при работе с потоками (Streams) и коллекциями.