mak*_*les 2 java scala list scala-java-interop
我有一个Scala方法在java类中使用抛出下面的错误.由于某种原因,隐式转换不起作用List,Lists但它确实适用于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]]
Run Code Online (Sandbox Code Playgroud)
要么
Error:(124, 143) type mismatch;
found: scala.collection.immutable.List[scala.collection.mutable.MutableList[String]]
required: scala.collection.immutable.List[java.util.List[String]]
Run Code Online (Sandbox Code Playgroud)
除非您明确转换内部列表,否则不会转换内部列表.
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
Run Code Online (Sandbox Code Playgroud)
我做了最后一次转换(c = b.asJava),我建议保留它,以便让代码更容易为未来的读者做好准备.