重载Java main()方法的示例

136 阅读1分钟

在Java中,一个入口类的main() 方法可以通过在该类中定义多个main() 方法而被重载。

例如,假设你有一个Main 类,其代码如下“

public class Main {
public static void main(String[] args) {
System.out.println("The main method is called");
}
}

你可以重载上面的main() 方法,如下图所示:

public class Main {
public static void main(String[] args) {
System.out.println("The main method is called");
}
 // Overload 1
 public static void main(int num) {
 System.out.println("Overloaded main method with an int parameter");
 }

 // Overload 2
 public static void main(Boolean bool) {
 System.out.println("Overloaded main method with a Boolean parameter");
 }
}

然而,当你用Java运行上面的Main 类时,Java虚拟机(JVM)将总是调用带有String[] 参数的main() 方法。

其原因是JVM总是将一个String 的数组传入main() 方法。

即使你从命令行传递一个intBoolean 参数,JVM也会将它们作为一个String 的数组传递给main() 方法:

$ java Main.java
The main method is called
$ java Main.java 99
The main method is called
$ java Main.java true
The main method is called

如果你想调用重载的main() 方法,那么你需要像这样从原来的主方法中调用它:

public class Main {
public static void main(String[] args) {
System.out.println("The main method is called");
 main(99);
 }
// Overload 1
 public static void main(int num) {
System.out.println("Overloaded main method with an int parameter");
}
}

现在,当你从命令行运行Main 类时,输出应该如下图所示:

$ java Main.java
The main method is called
Overloaded main method with an int parameter

但话说回来,最好还是给main(int num) 方法另起一个名字。

总而言之,你可以在Java中重载main() 方法,但这样做几乎没有任何好处。😄