隐式Java到Scala集合转换不起作用

时间:2014-10-13 13:22:36

标签: scala

我经常遇到这样的问题:尽管我将scala.collection.JavaConverters._转换器导入到我的scala文件中,但隐式转换不会发生。

假设以下代码(其中submissionStorage.get是返回Java Map的Java函数)

import scala.collection.JavaConverters._
import scala.collection.mutable

...

val submissions: java.util.Map[String, String] = submissionStorage.get(formname)
val submissionJavaKeys: java.util.Set[String] = submissions.keySet()
val submissionScalaKeys: mutable.Set[String] = submissionJavaKeys

导致以下编译错误:

  

类型不匹配;发现:java.util.Set [String]必需:   scala.collection.mutable.Set [字符串]

现在documentation of the JavaConverters表示存在转化" scala.collection.mutable.Set< => java.util.Set",这就是我在这里所需要的。

我做错了什么,所以JavaConverters在哪些条件下工作?

1 个答案:

答案 0 :(得分:4)

JavaConverters添加了asJavaasScala方法。您想要JavaConversions