Я ищу эквивалент CompletableFuture для peek() Streams, поэтому в основном thenApply, который возвращает входной аргумент, или thenRun, который не возвращает Void. Я могу придумать два способа, которые не семантически точно выражают мое намерение, но выполняют свою работу:
Код: Выделить всё
(..)
.thenApply((a) -> {
doSomething();
return a;
}
(..)
Код: Выделить всё
(..)
.whenComplete((result, exception) -> {
if (exception == null) {
doSomething();
}
}
(..)
Я также искал функцию идентификации, которая принимает потребительскую функцию в качестве аргумента, но, похоже, мне придется написать ее самому:
Код: Выделить всё
public static Function identityConsumer(Consumer c) {
return a -> { c.accept(a); return a; };
}
Код: Выделить всё
(..)
.thenApply(identityConsumer(a -> doSomething()));
(..)
Подробнее здесь: https://stackoverflow.com/questions/707 ... reams-peek
Мобильная версия