公共静态main (String args[])的变体



这4个方法签名之间的区别是什么,为什么第4个不起作用?

public void main(String args[]) {... } 
public void main(String[] args) {... }
public void main(String... args) {... }
public void main(String[] args[]) {... }

前三个是等价的。*最后一个相当于String[][] args(即数组的数组),这与Java对main的要求不匹配。

然而,习惯的版本是第二个。


*第三个参数只在Java 5以后有效。

String args[]String[] args完全等价。第一种形式是数组声明的"C"形式,将[]应用于变量名。第二种形式是首选的Java形式,其中[](更合乎逻辑地)与类型名而不是变量名相关联。Java允许这两种形式互换。

第三种形式似乎是可变长度的参数列表形式,尽管我从未深入研究过这个领域。

第四种形态是一种令人憎恶的东西,只能从规范的缝隙中偷偷溜出来,永远不应该使用。我的猜测是它指定了一个二维数组,但是没有尝试就不能确定。

请注意,public static main没有什么神圣的。您可以将任何方法命名为main,并从任何地方调用它。只是当您从命令行运行Java程序时,Java命令会查找该名称的内容(使用通常的参数布局)作为入口点。在此之前,main和其他方法一样。

相关内容

  • 没有找到相关文章

最新更新