我经常遇到这样的问题:尽管我将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在哪些条件下工作?
答案 0 :(得分:4)
JavaConverters
添加了asJava
和asScala
方法。您想要JavaConversions
。