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

Объясните различие между интерфейсами Consumer и Supplier в контексте работы с потоками или функциональными интерфейсами.

Компании, где спрашивали
Т-БанкТ-Банк

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

sobes.tech AI

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

  • Consumer<T> — принимает объект типа T и ничего не возвращает. Используется, когда нужно выполнить действие с переданным объектом, например, вывести его или изменить состояние.

    Consumer<String> printer = s -> System.out.println(s);
    printer.accept("Hello"); // выводит Hello
    
  • Supplier<T> — не принимает аргументов, но возвращает объект типа T. Используется для генерации или поставки значений.

    Supplier<Double> randomSupplier = () -> Math.random();
    double value = randomSupplier.get();
    

Таким образом, Consumer — это «потребитель» данных, а Supplier — «поставщик» данных.