私はScalaのSpring3.0のJdbcTemplateクラスでオーバーロードされたquery()メソッドの1つを呼び出そうとしています...
val args: Array[Object] = new Array[Object](1)
args(0) = id
val results: List[MyObj] = jdbcTemplate.query(SQL_STRING, args, new MyJdbcStore.MyObjRowMapper)
...そして、「メソッド値クエリを代替でオーバーロードした」というスタックトレースを取得します。(上記のコードスニペットのMyObjRowMapperは、MyJdbcStoreのコンパニオンオブジェクトで定義されたクラスであり、SpringのRowMapperインターフェイスを拡張します。)「alternatives」は、それぞれこれらのパラメーターを持つ3つのバージョンのquery()です。
java.lang.String, Array[java.lang.Object], org.springframework.jdbc.core.ResultSetExtractor
java.lang.String, org.springframework.jdbc.core.PreparedStatementSetter, org.springframework.jdbc.core.ResultSet
org.springframework.jdbc.core.PreparedStatementCreator, org.springframework.jdbc.core.PreparedStatementSetter, org.springframework.jdbc.core.ResultSetExtractor
結果変数の戻り型を明示的に定義したのに、コンパイラが呼び出すクエリメソッドを決定できないのはなぜですか?