调用重载主方法

时间:2016-05-07 13:10:06

标签: java

假设我们有一个包含两个重载主方法的类。

    public class MyClass {
  public static void main(int x){
   System.out.println("(int x )version");
  }

  public static void main(String[] args){
    System.out.println("(String[] args)");
  }
}

那么,我们如何在运行程序时调用(int x)版本?

3 个答案:

答案 0 :(得分:3)

MyClass.main(5)

是如何调用它的示例。

如果您自动希望调用main(int)方法,只需从main(String[])调用即可。我假设您希望java像输入一样处理输入。这是一种方法

public static void main(int ... ints) {
    // Process
}

public static void main (String[] args) {
    main(Arrays.stream(args).mapToInt(Integer::parseInt).toArray());
}

答案 1 :(得分:2)

唯一的方法就是调用它,就像你调用任何其他静态方法一样,例如:

?- length(L,10),time(length(L,X)).
% 2 inferences, 0.000 CPU in 0.000 seconds (63% CPU, 142857 Lips)

?- length(L,20),time(length(L,X)).
% 2 inferences, 0.000 CPU in 0.000 seconds (62% CPU, 153846 Lips)

?- length(L,30),time(length(L,X)).
% 2 inferences, 0.000 CPU in 0.000 seconds (65% CPU, 111111 Lips)

问题是真正的主方法方法签名必须与JVM期望的完全匹配。所有其他"主要"方法重载就像JVM的任何其他方法一样,并且不会是自动程序启动的位置。

答案 2 :(得分:0)

是的,你可以重载主

不,你无法启动程序调用过载, JVM将调用主签名main(String [] args)重载。

//JVM will call this method manually if you want
public static void main(String[] args,int a){
// some code
}

//JVM will call this method to start your program
public static void main(String[] args){ 
// some code 
}