java - java中合法的main方法签名

标签 java main-method

class NewClass{
    public static void main(String a){
        System.out.print("Hello");
    }
}

当我尝试执行上面的代码时,它显示错误:未找到主要方法。当我将签名更改为

public static void main(String... a)

public static void main(String a[])

然后就可以了。我的问题是我们可以用多少种不同的方式来编写合法的 main 方法签名? String... 版本是什么意思?

最佳答案

因为这是 Java 的要求。

程序的主要方法/入口点必须是声明为public static void main(String[] args)的方法。您使用 String 参数声明的方法相似但不兼容。

数组与单个字符串不同 - 如果有人使用三个命令行参数调用 Java,JVM 将创建一个三元素字符串数组,然后它将如何将其传递到只接受一个字符串的方法中单字符串?

因此,在那种情况下,您试图启动一个基于没有 main 方法作为入口点的类的 Java 程序。

(String... 起作用的原因是因为这是数组参数的语法糖,并编译成具有相同签名的方法。)

关于java - java中合法的main方法签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13603445/

相关文章:

java - Web 驱动程序的依赖问题 - 无法从最终类继承

java - Groovy 代码找不到 Java 构造函数

java - JBoss EAP 7.0standalone.xml 中设置的 Infinispan 缓存设置未反射(reflect)在应用程序中

java - 如何在不构建整个maven项目的情况下运行main方法?

java - 为什么不能使用 Void 作为 main 方法的返回类型

java - 使用循环从字符数组列表中删除重复项?

java - 使用 Java 将摩尔斯电码转换为英文文本

unit-testing - 使用类的主要方法进行调试?

java - Intellij 不显示运行按钮

c++ - TCHAR* envp[] : What is it?