私は Scala を初めて使用し、私たちのプロジェクトでは Java と Scala のコードを (Play Framework を使用して) 組み合わせています。次のようなネストされた Java Map を取ることができる Scala メソッドを作成しようとしています。
LinkedHashMap<String, LinkedHashMap<String, String>> groupingA = new LinkedHashMap<String, LinkedHashMap<String,String>>();
そして、その Java オブジェクトをループ可能な Scala 関数に渡します。上記のJavaのネストされたマップを試してサポートするために、次のscalaオブジェクト定義があります。
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 ファイルに渡す方法についてのアイデアはありますか? Java ではなく Scala で play フレームワーク コントローラーを記述することに切り替えた場合に備えて、ネストされた Scala コレクションでも機能するように、このジェネリックを十分に記述しようとしています。