Метод accept
Метод accept класса Consumer представляет собой функциональную операцию, которая принимает одно входное значение типа T и выполняет над ним некоторое действие, ничего не возвращая (тип возвращаемого значения - void). В первый параметр мы передаем значение, которое нужно обработать. Этот метод часто используется в потоковых операциях, например, в forEach, где каждое значение потока передается в accept для выполнения побочного эффекта. Поскольку Consumer является функциональным интерфейсом, метод accept можно реализовать с помощью лямбда-выражения.
Синтаксис
void accept(T t)
Пример
Давайте создадим Consumer, который выводит полученное значение в консоль, и вызовем его метод accept с числом 5:
import java.util.function.Consumer;
public class Main
{
public static void main(String[] args)
{
Consumer<Integer> con = x -> System.out.println(x);
con.accept(5);
}
}
Результат выполнения кода:
5
Пример
Давайте передадим ссылку на метод System.out.println как реализацию Consumer и обработаем строку:
import java.util.function.Consumer;
public class Main
{
public static void main(String[] args)
{
Consumer<String> con = System.out::println;
con.accept("abcde");
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте используем Consumer вместе с методом forEach для обработки каждого элемента списка:
import java.util.List;
import java.util.function.Consumer;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = List.of(1, 2, 3, 4, 5);
Consumer<Integer> con = x -> System.out.println(x * 2);
list.forEach(con);
}
}
Результат выполнения кода:
2
4
6
8
10
Смотрите также
-
класс
Consumer,
который представляет операцию над одним аргументом -
метод
andThen,
который объединяет два Consumer в цепочку -
метод
forEach,
который применяет действие к каждому элементу потока -
класс
BiConsumer,
который представляет операцию над двумя аргументами