我是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