将多维数组作为文字传递给 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"});
我已经编写了两个方便的方法来访问参数化的更复杂的方法 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"});