java - Java 数组参数声明语法 "..."是如何工作的?

标签 java arrays declaration

我写java有一段时间了,今天遇到如下声明:

public static void main(String... args) {

}

注意数组声明中的“dot dot dot”,而不是通常的括号[]。显然它有效。事实上,我写了一个小测试并验证它有效。所以,我拉了下java语法,想看看这个参数声明的语法在哪里,但是没有找到任何东西。

请问专家们,这是如何运作的?它是语法的一部分吗?此外,虽然我可以像这样声明函数,但我不能像这样在函数体内声明数组。

无论如何,你知道有这个记录的地方吗?这是好奇心,也许不值得投入任何时间,但我被难住了。

最佳答案

我相信这是在 Java 1.5 中实现的。该语法允许您使用逗号分隔的参数列表而不是数组来调用方法。

public static void main(String... args);
main("this", "is", "multiple", "strings");

等同于:

public static void main(String[] args);
main(new String[] {"this", "is", "multiple", "strings"});

http://today.java.net/article/2004/04/13/java-tech-using-variable-arguments http://download.oracle.com/javase/1.5.0/docs/guide/language/varargs.html

关于java - Java 数组参数声明语法 "..."是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4618930/

相关文章:

java - 水的状态 - 摄氏度和华氏度 Java

java - Mockito 模拟所有方法调用和返回

c - 究竟什么时候定义指针差异?

javascript - 使用串联和传递的参数循环遍历数组

c++ - C++ 类中的枚举声明,在类中获取枚举的问题

c++ - 为什么它是指向 void 声明符的指针而不是指向成员函数的指针?

java - 将任意参数的数组传递给通过反射调用的方法

java - 为什么调试指针移动到源方法的第一行,而不是移动到当前存在调试指针的方法的第一行?

java - 如何通过从 C++ 中的文件中读取来拆分 ByteArray?

c++ - 主体为空的类是不完整类型吗?