假设我们有一个包含两个重载主方法的类。
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)版本?
答案 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
}