首页 > 解决方案 > 使用外部地图转换地图

问题描述

我正在尝试将外部地图添加到现有地图,但仍从该方法返回相同的内容。

以下是现有地图的外观:

def someMethod(checkType: String) : Flow[ByteString, MyClass[OtherClass], NotUsed] = {
  someFlow
  .map (s => SomeParser(s))
  .collect {
    case Right(ts) => ts
  }
  .map {t =>
    val somedata = checkType match {
      case "foo" => SomeClass.someMethod(t)
    }
    (one, two)
  }
  .map {x =>
    x._2.leftMap(xs => {
      someMethod(x._1, xs.toList)
    }).toEither
  }
}

我正在尝试添加一个外部地图,但仍然能够返回从上述方法中的原始地图返回的相同内容。我在下面尝试过,但是这样做 scala 抱怨返回不匹配。为了便于识别,我评论了下面哪些行不同。

def someMethod(checkType: String) : Flow[ByteString, MyClass[OtherClass], NotUsed] = {
  anotherFlow.map {l => //new
    someFlow 
    .map (s => SomeParser(s))
    .collect {
      case Right(ts) => ts
    }
    .map {t =>
      val myClass = MyCaseClass(t, l) //new
      val somedata = checkType match {
        case "foo" => SomeClass.someMethod(myClass.t) //modified
      }
      (one, two)
    }
    .map {x =>
      x._2.leftMap(xs => {
        someMethod(x._1, xs.toList)
      }).toEither
    }
  }
}

标签: scalaakka

解决方案


推荐阅读