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/