Я не могу заставить vararg
работать с JdbcTemplate.query(String!, RowMapper<T!>!, vararg Any!)
.Если я оставлю переменные аргументы выключенными, похоже, что это работает.Например:
Это работает:
fun translates(field: String) = template.query("SELECT key, value FROM table", {
rs: ResultSet, _: Int -> Pair(rs.getString("key"), rs.getString("value"))
})
или это работает:
fun translates(field: String) = template.query("SELECT key, value FROM table") {
rs: ResultSet, _: Int -> Pair(rs.getString("key"), rs.getString("value"))
}
Но это не работа (я добавил , field
в конце вызова функции, которая должна соответствовать функции query(String!, RowMapper<T!>!, vararg Any!)
):
fun translates(field: String) = template.query("SELECT key, value FROM table WHERE field = ?", {
rs: ResultSet, _: Int -> Pair(rs.getString("key"), rs.getString("value"))
}, field)
Это соответствующая часть сообщения об ошибке:
query(String!, RowMapper<T!>!, vararg Any!)
where T cannot be inferred for
fun <T : Any!> query(sql: String!, rowMapper: RowMapper<T!>!, vararg args: Any!): (Mutable)List<T!>!