我认为这可能是作者所指的.
由于Java 5,我们可以使用可变参数列表声明函数.
public static int newStyleSum(final int... numbers) {
int sum = 0;
for (final int number : numbers) {
sum += number;
}
return sum;
}
它们可以用于:
int s = newStyleSum(1,2,3,4);
这个功能只是语法糖.在内部,一个匿名数组被传递给该函数.
在我们有这个语法之前,上面的例子必须写成:
public static int oldStyleSum(final int[] numbers) {
int sum = 0;
for (int i = 0; i < numbers.length; ++i) {
sum += numbers[i];
}
return sum;
}
并称为
int s = oldStyleSum(new int[]{1,4}); // "second" form
但不如
int s = oldStyleSum({1,4}); // "first" form (Syntax error)
哪怕今天仍然是一个语法错误.
这可能是他正在谈论的. Java 5在2004年出版,所以对于2002年的书,这是有道理的.
新语法更灵活,更重要的是向后兼容,所以我们仍然可以做到
int s = newStyleSum(new int[]{1,4});
或者更重要的是,
int[] numbers = {1,4};
int s = newStyleSum(numbers);
如果我们想.