Код: Выделить всё
class A {
String s;
String getS() {return s;}
static boolean aFilter(String in) {return true or false}
static A aTransformation(A a) {return another A}
}
Код: Выделить всё
List myAs = provideTheList();
myAs.stream()
.map(A::getS)
.filter(A::aFilter)
.map("back to stream of A")
.map(A::aTransformation)
.toList();
Код: Выделить всё
myAs.stream()
.filter(a -> A.aFilter(a.getS()))
.map(A::aTransformation)
.toList();
Код: Выделить всё
myAs.stream()
.filter(A::aFilter ° A::getS) // function composition
...
В Java есть предикаты, которые можно компоновать с помощью и, или.
Я не нашел способа компоновать функции в потоке.
Другим способом было бы выполнить «возврат к потоку A", я не верю, что можно получить данные в "другой точке потока".
Есть ли у вас элегантный способ выполнить описанную выше операцию?
Подробнее здесь: https://stackoverflow.com/questions/791 ... -functions
Мобильная версия