Обработка значения без возврата в Java
Consumer выполняет действие над значением и ничего
не возвращает. Абстрактный метод - accept. Такой
контракт подходит для вывода в лог, сохранения черновика
или отправки события.
Потребитель, который печатает заголовок:
import java.util.function.Consumer;
Consumer<String> printTitle = title ->
System.out.println("title: " + title);
Вызов для одной строки:
public class Main {
public static void main(String[] args) {
Consumer<String> printTitle = title ->
System.out.println("title: " + title);
printTitle.accept("release notes");
}
}
Метод обхода может принимать Consumer и вызывать
его для каждого элемента:
import java.util.function.Consumer;
class TitlePrinter {
void each(String[] titles, Consumer<String> action) {
for (String title : titles) {
action.accept(title);
}
}
}
При вызове подставляют нужную лямбду:
TitlePrinter printer = new TitlePrinter();
printer.each(
new String[] {"one", "two"},
title -> System.out.println("# " + title)
);
Создайте Consumer<String> markDraft, который
выводит "draft: " и переданный заголовок.
Вызовите accept для "post".