我是 Scala 的新手,我们的项目将 Java 和 Scala 代码混合在一起(使用 Play 框架)。我正在尝试编写一个可以采用嵌套 Java Map 的 Scala 方法,例如:
LinkedHashMap<String, LinkedHashMap<String, String>> groupingA = new LinkedHashMap<String, LinkedHashMap<String,String>>();
并将该 java 对象传递给可以循环遍历它的 Scala 函数。我有以下 scala 对象定义来尝试支持上述 Java 嵌套映射:
Seq[(String, Seq[(String,String)])]
Java 文件和 Scala 文件都可以单独编译,但是当我的 java 对象尝试创建我的 scala 类的新实例并传入嵌套映射时,我得到一个编译器错误,其中包含以下详细信息:
[error] ..... overloaded method value apply with alternatives:
[error] (options: java.util.List[String])scala.collection.mutable.Buffer[(String, String)] <and>
[error] (options: scala.collection.immutable.List[String])List[(String, String)] <and>
[error] (options: java.util.Map[String,String])Seq[(String, String)] <and>
[error] (options: scala.collection.immutable.Map[String,String])Seq[(String, String)] <and>
[error] (options: (String, String)*)Seq[(String, String)]
[error] cannot be applied to (java.util.LinkedHashMap[java.lang.String,java.util.LinkedHashMap[java.lang.String,java.lang.String]])
关于如何将嵌套的 Java LinkedHashMap (如上面)传递到 Scala 文件中的任何想法,我可以在其中一般地迭代嵌套集合?我正在尝试编写足够通用的代码,以便它也适用于嵌套的 Scala 集合,以防我们改用 Scala 而不是 Java 编写我们的游戏框架控制器。