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

标签 java arrays declaration

一直在写java,今天遇到如下声明:

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

}

注意数组声明中的“点点点”,而不是通常的括号[]。显然它有效。事实上,我写了一个小测试并验证它有效。于是,我拉了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/4211099/

相关文章:

c - 编译时获取结构指针警告的 -Win兼容指针类型

java:通过多个线程向 map 添加值(可能吗?)

javascript - 按顺序收集 AJAX 结果

javascript - 显示表格对象

c - 访问数组的 NULL 字符

c++ - 为我在 C++ 中创建的对象声明一个变量

c - 全局变量作为函数 C 中的参数

java - 如何进行线程交互?

java - 有什么方法可以检查 Hadoop 文件是否已经打开进行写入?

java - ArrayList : java. util.LinkedHashMap 的迭代器错误无法转换为 MyObject