GROOVY-11541: Sql wildcard params by seregamorph · Pull Request #2139 · apache/groovy

https://issues.apache.org/jira/browse/GROOVY-11541
groovy.sql.Sql declares several methods with SQL statement and parameters like this

public boolean execute(String sql, List<Object> params) throws SLQException {

This declaration has one major drawback: it's not possible to pass as an argument the List which is not exactly List<Object>, e.g. List<Integer>.

This List is only iterated, hence using wildcard here is safe. Also changing the type to wildcard as receiving argument should be binary compatible.

Suggested method signature (example; address all such methods of Sql class):

public boolean execute(String sql, List<?> params) throws SLQException {

Additional notes:

  • there are few methods that return List<Object>, e.g. SqlWithParams.getParams() - in this case the Object generic should be preserved.
  • For reference: pretty similar problem solved for cassandra-java-driver apache/cassandra-java-driver@be07a77