java - 如何将 scala.collection.immutable.List[scala.collection.mutable.MutableList[String]] 转换为 java.util.List[java.util.List[String]]

标签 java list scala scala-java-interop

我在 java 类中使用了一个 Scala 方法,抛出以下错误。由于某些原因,隐式转换不适用于 ListsList,但它确实适用于 List。 (例如:mutable.MutableListutil.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/

相关文章:

java - 使用 Maven 构建项目

java - 如何自定义 JComboBox 的外观?

java - 让垃圾收集器更快放弃

java - 在java中将字符串列表转换为BigDecimal列表

javascript - 如何在scala函数中传递参数对象?

scala - 函数参数的模式匹配

java - 为什么继承类静态方法而不是接口(interface)静态方法?

c# - 如何按 2 列比较两个 csv 文件?

python - 从列表中删除重复项

java - 为什么这个用于检索当前年份的 Scala 代码返回 "113"?