import scala.concurrent.duration._
import scala.language.implicitConversions
import scala.concurrent.{Future, Await}
import scala.concurrent.ExecutionContext.Implicits.global
object test extends App {
case class Person(name: String, age: Int)
implicit def t2p(t: (String, Int)) : Person = Person(t._1, t._2)
val f:Future[Vector[(String, Int)]] = Future {
Vector(("One", 1), ("Two", 2))
}
val s = f.mapTo[Vector[Person]]
Await.result(s.map { _ foreach { x => println(x)}}, 5.seconds)
}
我想一个向量转换元组到Vector [人]但上面的代码结果在铸造例外即使存在隐式的元组和Person的转换功能?Scala的元组的矢量映射到对象的矢量
线程“main”中的异常java.lang.ClassCastException:scala.Tuple2无法转换为example.test $ Person at example.test $$ anonfun $ 2 $$ anonfun $ apply $ 1.apply(test.scala: 19) at scala.collection.Iterator $ class.foreach(Iterator.scala:727) at scala.collection.AbstractIterator.foreach(Iterator.scala:1157) at scala.collection.IterableLike $ class.foreach(IterableLike。 Scala:72) at scala.collection.AbstractIterable.foreach(Iterable.scala:54) at example.test $$ anonfun $ 2.apply(test.scala:19) at example.test $$ anonfun $ 2.apply( test.scala:19)
谢谢。
我取代'f.mapTo [矢量[人]]'和'VAL S = f.map(X => x.map(Y =>人员( y._1,y._2,y._3)))''但你的更好,谢谢。 – user3217212