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

Author: Tatyana Milkina

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");
    }
}
Читайте также:
Комментарии