将多维数组作为文字传递给 Java 中的方法调用

Passing a multidimensional array as a literal to a method call in Java

我已经编写了两个方便的方法来访问参数化的更复杂的方法 sql queries/executes.

第一个是:

public int sqlExecute(String sql, String... parameters)

我可以这样称呼

sqlExecute("exec blah ?, ?, ?", "param1", "param2", "param3");

第二个定义为:

public int sqlExecute(String sql, String[]... parameters)

应该用数组[2][无论大小]调用,它在第一列中保存类型(更​​准确地说,它是提供类型的字段的 "table.column"...我必须以这种方式实现)和第二个要使用的参数的值。

这样的电话
sqlExecute("exec blah ?, ?", {"account.name", "foo"}, {"account.region", "bar"});

结果为 "Syntax error on tokens, delete these tokens"(使用 Eclipse Luna)。 这不是正确的语法吗?

我希望完成的是我不必定义一些保存数组的变量,而是像使用方法 #1 一样使用数组文字调用方法。 还有别的办法吗?

你应该这样称呼它

sqlExecute("exec blah ?, ?", 
    new String[] {"account.name", "foo"}, 
    new String[] {"account.region", "bar"});

您可以添加一个辅助方法来缩短它:

public static String[] arr(String... args) {
    return args;
}

sqlExecute("exec blah ?, ?", 
    arr("account.name", "foo"), 
    arr("account.region", "bar"));

您需要使用

sqlExecute("exec blah ?, ?",
        new String[] {"account.name", "foo"},
        new String[] {"account.region", "bar"});