Lambda · Урок 4/10
40%
⏱ 10–15 min

Java: Интерфейс Consumer

Consumer - встроенный функциональный интерфейс, добавленный в Java SE 8 в пакет java.util.function.

Принимает значение в качестве аргумента и ничего не возвращает:

@FunctionalInterface
public interface Consumer<T> {
    void accept(T t);
}

Consumer интерфейс используется в случае, если необходимо передать объект на вход и произвести над ним некоторые операции не возвращая результат. Самый частый случай использования этого интерфейса - это вывод на консоль.

Функциональный дескриптор интерфейса:

T -> void

Следующий пример показывает использование интерфейса Consumer для вывода на консоль строки в верхнем регистре:

import java.util.function.Consumer;

public class ConsumerExample1 {
    public static void main(String[] args) {
        Consumer<String> printUpperCase = str -> System.out.println(str.toUpperCase());
        printUpperCase.accept("hello");
    }
}

Consumer интерфейс содержит метод по умолчанию, который возвращает составной Consumer, выполняющий последовательно действия указанные в каждом интерфейсе:

default Consumer<T> andThen(Consumer<? super T> after)

Рассмотрим пример использование метода andThen():

import java.util.function.Consumer;

public class ConsumerExample2 {
    public static void main(String[] args) {
        Consumer<String> printUpperCase = str -> System.out.println(str.toUpperCase());
        printUpperCase.accept("hello");

        Consumer<String> printLowerCase = str -> System.out.println(str.toLowerCase());
        printUpperCase.andThen(printLowerCase).accept("Hello world");
    }
}

Видео объяснение

Предпочитаете видеоформат? Посмотрите этот урок с примерами и объяснениями.

Java программирование

1. Введение в Java
2. Запуск Java
3. Синтаксис Java
4. Операторы Java
5. Условия и циклы
6. Массивы
7. Алгоритмы
8. Git и GitHub
9. ООП
10. static
11. Object
12. Интерфейсы, enum
13. Wrapper классы
14. String
15. Localization& Internationalization
16. Date & Time
17. Generics
18. Lambda
19. Коллекции
20. Stream API
21. Исключения
22. I/O
23. Reflection & JavaDoc
24. Сериализация
25. Maven
26. SQL
27. JDBC
28. Многопоточность
‹ Предыдущий урок Следующий урок ›