У меня есть функция, подобная приведенной ниже.
public static List xyz(Map<String, String> m) {
if(functionWithSomeLogic(m)) {
return ImmutableList.of("A", "B");
}
if(functionWithSomeOtherLogic(m)) {
return ImmutableList.of("C", "D");
}
List<String> collect = m.keySet().stream().collect(Collectors.toList());
return collect;
}
Я хочу узнать, как преобразовать эту функцию для использования потоков и возвращать различные списки в зависимости от условий.
Я хочу иметь возможностьписать как
`Optional.of(m).map(m->{if (functionWithSomeLogic(m)) return ImmutableList.of("A", "B")}`
Но я не могу удержаться на одном уровне, если происходит ветвление с разными возвратами.
По сути, я хочу, чтобы канал продолжал работать с исходным объектом, ивернуть другой объект в зависимости от заданных условий.В то же время удерживая трубу на одном уровне.