我在 java 类中使用了一个 Scala 方法,抛出以下错误。由于某些原因,隐式转换不适用于 Lists
的 List
,但它确实适用于 List
。 (例如:mutable.MutableList
到 util.List
)
Error:(124, 143) type mismatch;
found: scala.collection.immutable.List[scala.collection.mutable.MutableList[String]]
required: java.util.List[java.util.List[String]]
或
Error:(124, 143) type mismatch;
found: scala.collection.immutable.List[scala.collection.mutable.MutableList[String]]
required: scala.collection.immutable.List[java.util.List[String]]
最佳答案
除非您明确转换,否则不会转换内部列表。
import scala.collection.JavaConverters._
import java.util.{List=>JavaList}
import scala.collection.immutable.{List => ScalaList}
import scala.collection.mutable.{MutableList => ScalaMutableList}
val a : ScalaList[ScalaMutableList[String]] = List(MutableList())
val b: ScalaList[JavaList[String]]= a.map(_.asJava)
val c: JavaList[JavaList[String]] = b.asJava
我明确了最后一个转换 (c=b.asJava
),我建议保留它,以便让代码更容易为 future 的读者准备好。
关于java - 如何将 scala.collection.immutable.List[scala.collection.mutable.MutableList[String]] 转换为 java.util.List[java.util.List[String]],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34691563/