お題: Map を Mapに変換するメソッドを作るという話題。 Mapの置換にみるジェネリクス表現 - プログラマーの脳みそ 元の話はJavaなんだけどScalaではできるかどうかやってみた。 バージョンはScala 2.11.2 ベースの実装 Javaのベースの実装 public static <K,V, R extends Map<V,K>, P extends Map<K,V>> R swap2(P origin, Supplier<R> supplier) { // 略 } これをScalaに機械的に翻訳してみる。 Mapはとりあえずmutableなやつとして実装も書く。 import scala.collection.mutable.Map def swap2[V, K, R <: Map[V, K], P <: Map[K, V]](origin: P, supplier: (