Java 如何在Akka runWith()中创建方法并使用此方法
Akka流代码:Java 如何在Akka runWith()中创建方法并使用此方法,java,akka,akka-stream,Java,Akka,Akka Stream,Akka流代码: Source.range(1, 100).map(i -> { return Stream.of(i*4).toList(); }).runWith(Sink.foreach(a ->System.out.println(a)), materializer); 我想创建一个方法,比如说printList(),并移动runWithcode(Sink.foreach(a->System.out.println(a))),所以它应该像这样runWit
Source.range(1, 100).map(i -> {
return Stream.of(i*4).toList();
}).runWith(Sink.foreach(a ->System.out.println(a)), materializer);
我想创建一个方法,比如说printList()
,并移动runWith
code(Sink.foreach(a->System.out.println(a))
),所以它应该像这样runWith(printList(),materializer)
printList()
方法必须返回一个Sink
,或者一个可运行的图形/Sink形状。我不明白您在这里到底想做什么,所以我将分析一些让我困惑的事情,也许这将帮助您编写出更好的代码:
Source.range(1100)
是一个很好的开始,它将一次输出一个从1到100的整数map(i->Stream.of(i*4).toList())
就是我开始困惑的地方。这将返回一个只包含一个元素的列表
:i x 4(依次为4、8、12、16等)。同样的效果,不需要列表,只需使用map(i->i*4)
。。。这将返回上游源的每个元素乘以4runWith(Sink.foreach(a->System.out.println(a)),mat)
。。。在您拥有的代码中,它将收到一个包含一个元素的列表,100次Sink.seq()
。但是,您必须确保源实际上是有限的,否则您将永远无法到达这个Sink操作符创建的集合的末尾
猜猜你的目的,我想你会想要这样的东西:
Source.range(1, 100)
.map(i -> i * 4)
.runWith(
Sink.forEach(a -> System.out.println(a)),
materializer);
这会打印出来
4
8
12
16
20
...
400
printList()
方法必须返回一个Sink
,或一个可运行的图形/Sink形状。我不明白您在这里到底想做什么,所以我将分析一些让我困惑的事情,也许这将帮助您编写出更好的代码:
Source.range(1100)
是一个很好的开始,它将一次输出一个从1到100的整数map(i->Stream.of(i*4).toList())
就是我开始困惑的地方。这将返回一个只包含一个元素的列表
:i x 4(依次为4、8、12、16等)。同样的效果,不需要列表,只需使用map(i->i*4)
。。。这将返回上游源的每个元素乘以4runWith(Sink.foreach(a->System.out.println(a)),mat)
。。。在您拥有的代码中,它将收到一个包含一个元素的列表,100次Sink.seq()
。但是,您必须确保源实际上是有限的,否则您将永远无法到达这个Sink操作符创建的集合的末尾
猜猜你的目的,我想你会想要这样的东西:
Source.range(1, 100)
.map(i -> i * 4)
.runWith(
Sink.forEach(a -> System.out.println(a)),
materializer);
这会打印出来
4
8
12
16
20
...
400
您要打印哪个列表?您还想放置printList()而不是System.out.println(a)?我想要一个类似printList()的方法{Sink.foreach(a->System.out.println(a))}和.runWith(printList(),materializer);。这个printList()将打印所有列表元素,例如,4、8、12等等,您想打印哪个列表?您还想放置printList()而不是System.out.println(a)?我想要一个类似printList()的方法{Sink.foreach(a->System.out.println(a))}和.runWith(printList(),materializer);。这个printList()将打印所有列表元素,如,4,8,12等等。实际上,我是Akka,Akka Stream的新手,请提供完整的代码,正如您在上面解释的那样。谢谢,事实上,我是新来阿克卡,阿克卡流,请提供完整的代码,如你在上面解释。谢谢