动态参数是基本上语法糖用于传递参数数组的函数的形式。在内部,动态参数是一个数组。
public Formatter format(String format, Object ... args)
是基本相同
public Formatter format(String format, Object[] args)
除了在前一种情况下,你不必建造手工阵列,编译器会为你做它。但仍然可以传递一组参数,就好像该方法是用后一种语法编写的一样。只需使用数组流
String[] arrayOfString;
Object[] arguments = new Object[arrayOfString.length + 2];
int argIndex = 0;
arguments[argIndex++] = "someString";
for (int i = 0; i < arrayOfString.length; i++) {
arguments[argIndex++] = arrayOfString[i];
}
arguments[argIndex++] = "anotherString";
Formatter formatter = new Formatter();
formatter.format("FormatString", arguments);
“我想以字符串数组中的所有字符串的形式传递”你试过了吗?它是如何去的? – Pshemo
如果array是可能的最后一个参数。但不可能在代码中提到的东西。 – Dinushan
从我记得它更像是“如果数组只是参数(格式旁边)”,那么它是可能的。如果所有元素都是String类型,那么可以将它们包装在数组中并传递它,如果其中一些元素可以是其他类型的使用Object数组。 – Pshemo