我正在尝试在 Scala 中调用 Spring 3.0 的 JdbcTemplate 类中的重载 query() 方法之一...
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 接口。)“替代品”是 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
即使我已经明确定义了结果变量的返回类型,为什么编译器不能确定调用哪个查询方法?