pushArguments.par.foreach(
recFilesToPush => push(recFilesToPush).par.foreach {
case (subsId, pid, sid) =>
println(s"\n ----------- FINISHED PUSHING -------------- \n sid = $sid \n pid = $pid & subsid = $subsId")
其中push方法实现如下:
def push(desiredPushArguments: List[PusherParams]): ParSeq[(Int, Int, Long)] = {
desiredPushArguments.par.flatMap(
x => {
x.sessionStreamsDelayFromAuth = 0
sendSessionAndReturnDetails(x)
})
}
我已经开始将其翻译成java:
pushArguments.add(new ArrayList<PusherParams>(Arrays.asList(pp)));
pushArguments.parallelStream().forEach(argument->push(argument));
现在,当我停留在案例有3个值(subsId,pid,sid)的那部分上时,该值是从push方法返回的,我通过这种方法将其转换为java(部分):
public ParallelSequence push(List<PusherParams> desiredPusherArguments){
System.out.println("Gaga");
// System.out.println(desiredPusherArguments.parallelStream().flatMap(x -> desiredPusherArguments.stream()));
// System.out.println(desiredPusherArguments.parallelStream().flatMap(x -> {x.sessionStreamsDelayFromAuth,sendSeesionAndReturnDetails(x)} );
}
其中ParallelSequence是一个包含三个成员变量的类:subsId,pid,sid
但它没有按预期工作.
解决方法:
>您编写了公共ParallelSequence推送,这意味着您希望返回的不是ParallelSqeuence类型.
>您正在尝试打印对象,在这种情况下,您需要打印每个结果,并且需要在lambda表达式内移动打印.
因此,您可以执行以下操作使其运行:
public void push(List<PusherParams> desiredPusherArguments){
desiredPusherArguments.parallelStream()
.flatMap(x -> desiredPusherArguments.stream())
.forEach(i -> System.out.println(i.getSomProp()));
}
getSomeProp只是示例,可以是PusherParams类中的任何属性
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。