小编典典

Java的主体为什么不使用可变长度参数列表?

java

我对Java main声明的语法有疑问:

public static void main (String[] args)

由于调用主函数时可以传递可变数量的String,因此这不应该是可变长度参数列表而不是数组吗?为什么使用带有字符串参数列表的此方法的命令行调用甚至可以工作?(除非进行后台处理,该处理使用字符串列表构建一个数组,然后将该数组传递给main方法…?)main声明不应该像这样吗?--

public static void main(String... args)

阅读 224

收藏
2020-11-01

共1个答案

小编典典

main(String... args)main (String[] args)实际上是相同的事情:什么你得到一个String数组。varargs只是调用者的语法糖。

我猜想就像您从没有main()从代码中调用过的那样,在引入varargs时并没有对其进行改进。

编辑 :其实,刮开最后一句话。main(String... args)当然是完全有效的语法。两种样式可以完全互换。这很好用:

public class Test {

    public static void main(String... args) {
        System.out.println("Hello World");
    }

}
2020-11-01