我正在学习反应流并试图将两个Flux结合起来如下;
3. is it possible to have XPC client which runs objective-c
code while the XPC listener will run on swift code ?
当调用subscribe时,我收到以下错误:
List<Integer> elems = new ArrayList<>();
Flux.just(10,20,30,40)
.log()
.map(x -> x * 2)
.zipWith(Flux.range(0, Integer.MAX_VALUE),
(two, one) -> String.format("First : %d, Second : %d \n", one, two))
.subscribe(elems::add);
我得到了以下建议来解决问题:
但这些替代方案都没有奏效。 有什么建议,如何解决这个问题?
答案 0 :(得分:2)
有时,方法引用会让您忽略显而易见的事实。我已经重写了你的函数,但是使用了匿名类。
List<Integer> elems = new ArrayList<>();
Flux.just(10,20,30,40)
.log()
.map(x -> x * 2)
.zipWith(Flux.range(0, Integer.MAX_VALUE),
(two, one) -> String.format("First : %d, Second : %d \n", one, two))
.subscribe(new Consumer<String>() {
@Override
public void accept(String s) {
}
});
我已经使用IDE(intellij)中的代码完成来创建这个匿名类。正如您所看到的,此消费者的输入是String
,来自
String.format("First : %d, Second : %d \n", one, two)
因此,我们抱怨您无法将String
添加到List<Integer>
这是您尝试使用elems:add