有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

公共静态main上的java变体(字符串args[]

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

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

共 (2) 个答案

  1. # 1 楼答案

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

    然而,惯用的版本是第二个版本


    *第三个仅在Java 5之后有效
  2. # 2 楼答案

    String args[]String[] args完全等价。第一种形式是数组声明的“C”形式,变量名使用[]。第二种形式是首选的Java形式,其中[]与类型名而不是变量名关联(更符合逻辑)。Java允许这两种形式可以互换

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

    第四种形式是一种令人憎恶的东西,它只会从规范的裂缝中溜走,永远不应该被使用。我的猜测是,它指定了一个二维数组,但如果不尝试,就无法确定

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