如何使用 Akka Streams 为 java 创建和使用 Pairs 流?
How can I create and use a stream of Pairs with Akka Streams for java?
我正在尝试使用 Akka streams, and I seem to have hit a problem when I try to define a Flow which should take Pair 元素的 javadsl 变体。
例如,我定义了一个流程,它接受传入的字符串并将其与布尔值配对,说明字符串的长度是否为 5 或更大:
final Flow<String, Pair<String, Boolean>, BoxedUnit> stringToPair = Flow
.of(String.class)
.map(s -> new Pair<>(s, s.length() >= 5));
这很好用。
但下一步是我定义一个 Flow,它接受字符串和布尔值对,returns 再次只接受字符串:
final Flow<Pair<String, Boolean>, String, BoxedUnit> pairToString = Flow
.of(Pair.class)
.map(p -> p.first());
我不确定是否应该使用 .of(Pair.class) 方法创建 pairToString 流,因为我不知道是否应该输入传入的 Pair 以及应该在何处输入(例如 Pair<String, Boolean>
)
非常感谢任何帮助和/或指点!
对于通用流元素类型,您可以使用
创建流
Flow.<Pair<String, Boolean>> create()
在这方面比 Flow.of(...)
允许更多的自由。在所有非通用情况下,选择哪一个都是品味问题。
我正在尝试使用 Akka streams, and I seem to have hit a problem when I try to define a Flow which should take Pair 元素的 javadsl 变体。
例如,我定义了一个流程,它接受传入的字符串并将其与布尔值配对,说明字符串的长度是否为 5 或更大:
final Flow<String, Pair<String, Boolean>, BoxedUnit> stringToPair = Flow
.of(String.class)
.map(s -> new Pair<>(s, s.length() >= 5));
这很好用。 但下一步是我定义一个 Flow,它接受字符串和布尔值对,returns 再次只接受字符串:
final Flow<Pair<String, Boolean>, String, BoxedUnit> pairToString = Flow
.of(Pair.class)
.map(p -> p.first());
我不确定是否应该使用 .of(Pair.class) 方法创建 pairToString 流,因为我不知道是否应该输入传入的 Pair 以及应该在何处输入(例如 Pair<String, Boolean>
)
非常感谢任何帮助和/或指点!
对于通用流元素类型,您可以使用
创建流Flow.<Pair<String, Boolean>> create()
在这方面比 Flow.of(...)
允许更多的自由。在所有非通用情况下,选择哪一个都是品味问题。