Sobes.tech
Junior — Middle

Εξηγήστε τη διαφορά μεταξύ των διεπαφών Consumer και Supplier στο πλαίσιο εργασίας με ροές ή λειτουργικές διεπαφές.

sobes.tech AI

Απάντηση από 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 — «поставщик» данных.