在重载的main方法中,为什么带有签名String [] args的main方法被认为是入口点。
e.g。
public class Test {
public static void main(String[] args) {
System.out.println("why this is being printed");
}
public static void main(String arg1) {
System.out.println("why is this not being printed");
}
public static void main(String arg1, String arg2) {
System.out.println("why is this not being printed");
}
}
答案 0 :(得分:2)
main方法应该只有1个String[]
类型的参数,因此单个字符串和2个字符串形式不是有效的主要方法,因此不是选项,唯一可接受的形式是:
public static void main (String[])
public static void main (String...)
第二个选项是第一个选项的语法糖。
这是在Java语言规范中设置的:
<强> 12.1。 Java虚拟机启动
Java虚拟机通过调用某个指定类的方法main来开始执行,并传递一个参数,这是一个字符串数组......
答案 1 :(得分:0)
这是Java的工作方式,Java文档描述了这一点;
指定以外的签名将无法正常工作,因为它们不符合标准。
java命令启动Java应用程序。它通过开始这样做 Java运行时环境(JRE),加载指定的类,和 调用该类的main()方法。该方法必须公开 和static,它不能返回任何值,它必须接受一个String 数组作为参数。方法声明具有以下形式:
public static void main(String [] args)
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html