0

好的,我正在尝试创建一个Web 请求工作单元,并在完成后将其通过管道传递给演员。我还不太了解匹配的来龙去脉,我正在失去头发,试图想出一种方法来进行匹配。

我有一个包罗万象的比赛风格,case _ : Seq[_]我将如何进行1)在这种情况下获得一个适当的案例类匹配器Seq[SubcategoryResponse]2)我如何在比赛主体内获得它的句柄?

val next_batch = Future.traverse(result.urls.get)(u => {
      val F = System.requester ? makeGetRequest(Root(),u.data)
      val F1 = F.map(f=> SubcategoryResponse(f.asInstanceOf[HttpResponse],u.payload.get,level+1))
      F1
    })
val res = Await result(next_batch, 20.seconds)
println(res.getClass)
res match {
  case _ : Seq[_] => {
    println("boom")
  }
}

编辑:宾果

简单的语法 :( -> m : Seq[SubcategoryResponse]。编译器警告并没有让我感觉很舒服。所以我的新问题是,类型擦除在这种情况下意味着什么。我需要认真对待这个警告吗?如果是这样,我该怎么做绕过它?

[warn] /Users/hassan/code/scala/extractor/HonCrawler.scala:139: non-variable type argument HonCategoryBootstrap.this.SubcategoryResponse in type pattern Seq[HonCategoryBootstrap.this.SubcategoryResponse] is unchecked since it is eliminated by erasure
[warn]     case m : Seq[SubcategoryResponse] => {
[warn]              ^
[warn] one warning found
4

1 回答 1

2

不要将Seqs 作为消息发送,而是将 s 包装Seq在另一个类中。例如:

case class SubcategoryResponses(responses: Seq[SubcategoryResponse])

然后你可以匹配案例类:

res match {
  case SubcategoryResponses(responses) => 
于 2013-11-15T16:18:47.113 回答