java - 从 Scala 到 Java 的翻译

标签 java scala

我有一段用 Scala 编写的代码:

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));

现在,当我卡在 case 得到 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

但它没有按预期工作。

最佳答案

我不知道你想做什么,但你的 java 代码有两个主要问题

  1. 您编写公共(public) ParallelSequence 推送,这意味着您希望返回 ParallelSqeuence 类型,但事实并非如此。

  2. 您正在尝试打印对象,在这种情况下,您需要打印每个结果并需要在 lambda 表达式中移动打印。

因此您可以执行以下操作以使其运行:

public void push(List<PusherParams> desiredPusherArguments){

    desiredPusherArguments.parallelStream()
            .flatMap(x -> desiredPusherArguments.stream())
            .forEach(i -> System.out.println(i.getSomProp()));

}

getSomeProp 只是示例,可以是 PusherParams 类中的任何属性

关于java - 从 Scala 到 Java 的翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48259157/

相关文章:

java - 什么时候包含什么?

java - 单元测试ServiceLoader

java - 用于软件指标的免费 Java 库

Java Play获取下拉框的值并将其放入Form对象中

scala - 使用元组作为参数列表调用方法

java - Rest API + Json 响应编码错误(我认为)

java - GWT DialogBox 生成其自身的多个副本

scala - Scala 中的单位与无单位

scala - 如何在 Scala 中使用宏创建变量

java - 窃取工作的并行工作似乎并没有窃取太多工作