是不需要命令行参数的程序所需的String args[]形参



据我所知,String args[]接受类型为String的元素数组——运行时系统通过这种机制向应用程序传递信息。

如果我们用一个简单的加法程序,像这样:

class Add {
    public static void main(String args[]) {
        int x = 10;
        int y = 30;
        int c = x + y;
        System.out.println(c);
    }
}

很明显,程序不需要任何命令行参数来计算结果。没有向args数组传递任何值。那么,有必要包括这个数组还是main()语法要求我们这样做?

要求有一个称为public static void main(String[] args)的函数作为Java程序的入口点。

如果您查看实际java命令的文档,它会使其显式:

java命令启动java应用程序。它通过启动Java运行时环境(JRE)、加载指定的类并调用该类的main()方法来实现这一点。方法必须声明为public和static,而不能返回任何值,并且必须接受字符串数组作为参数。方法声明的形式如下:

public static void main(String[] args)

这和JavaFX程序是有区别的;其初始入口点位于start()函数中。

From The Java Tutorials:

在Java编程语言中,每个应用程序必须包含一个签名为:

的main方法。

public static void main(String[] args)

是-如果您省略参数,您将得到以下错误:

错误:在类n .magnus.test中找不到主方法。测试时,请将主要方法定义为:public static void main(String[] args)

Oracle在Java SE规范中指定了main的要求:

最后,在完成Test类的初始化之后(在此期间可能发生了其他相应的加载、链接和初始化),调用Test的方法main。

方法main必须声明为public、static和void。它必须指定一个声明类型为String数组的形式形参(§8.4.1)。因此,以下任何一种声明都是可以接受的:

public static void main(String[] args)

public static void main(String…args)

简短的回答是肯定的。你的main方法必须有一个String[]参数,即使它不使用它。

如果它没有这样的参数,Java就把它当作任何其他public static方法,而不是作为程序的入口点。

这是Java中程序入口点的必要定义。你必须拥有它

这是main()方法的语法,无论您是否从命令行发送运行时参数。

任何程序的执行都将以main()的签名开始:-

public static void main(String args[])

相关内容

  • 没有找到相关文章

最新更新