我是Scala的新手,我们的项目将Java和Scala代码混合在一起(使用Play框架)。我试图写一个Scala的方法,可以采取一个嵌套的Java地图,如:Java嵌套映射到Scala嵌套序列
LinkedHashMap<String, LinkedHashMap<String, String>> groupingA = new LinkedHashMap<String, LinkedHashMap<String,String>>();
,并已通过一个Scala的功能,可以通过它循环,Java对象。我有以下斯卡拉对象的定义,试图支持上述Java的嵌套图:
Seq[(String, Seq[(String,String)])]
两个Java文件和Scala文件编译罚款分别,但是当我的java对象尝试创建我的斯卡拉的新实例类,并通过在嵌套地图,我得到一个编译错误有以下细节:这里
[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来编写我们的框架控制器。
“但是当我的java对象试图创建我的斯卡拉类的新实例,并通过在嵌套图” - 请向我们提供德codez :) – fresskoma
是'LinkedHashMap'一个'Seq'?我认为这只适用于斯卡拉集合层次结构的成员。编译时间或运行时错误。我会认为这将是一个编译错误,因为他们的类型不对齐。 – nsfyn55