【发布时间】:2011-07-04 15:27:12
【问题描述】:
从 Java API 我得到 p>
java.util.LinkedHashMap[String,java.util.ArrayList[String]]
然后我需要将其作为参数传递给 scala 程序
val rmap = Foo.baz(parameter)
这个参数是scala类型的:
Map[String,List[String]]
那么我怎样才能轻松转换
java.util.LinkedHashMap[String,java.util.ArrayList[String]]
到
Map[String,List[String]]
我尝试使用 import scala.collection.JavaConversions._ 但在我的情况下这不起作用(或者至少我猜是这样)因为 scala 代码在模板函数中,我只能放置 import scala.collection.JavaConversions ._ 函数内部。 模板函数如下:
def someFunc(param: java.util.LinkedHashMap[String,java.util.ArrayList[String]]) = {
import scala.collection.JavaConversions._
val rmap = Foo.baz(param) // param is of scala type Map[String,List[String]]
.......
现在 scala 不会自动将 java 类型转换为 scala 类型。
这是我得到的编译器错误: 引发的错误是:类型不匹配;找到:java.util.LinkedHashMap[String,java.util.ArrayList[String]] 需要:Map[String,List[String]]
【问题讨论】:
标签: scala