我们可以重载Java中的main方法吗?

时间:2020-02-23 14:33:58  来源:igfitidea点击:

在本教程中,我们将看到"我们可以在Java中重载main方法"。

是的,我们可以在Java中重载主要方法,但是当我们运行程序时,JVM将搜索公共静态void main(String [] args)并执行该方法。

java中重载main方法

例如:

package org.arpit.theitroad;
 
public class OverloadTestMain {
    public static void main(String[] args) {
        System.out.println("Inside main(String[] args)");
    }
    public static void main(Integer arg1) {
        System.out.println("Inside main(Integer arg1)");
    }
 
    public static void main(Integer[] arr) {
        System.out.println("Inside main(Integer array)");
    }
}

运行上面的程序时,我们将得到以下输出。

Inside main(String[] args)

正如我们所看到的,我们已经重载了main方法,但仍然仍然,JVM调用签名公共静态void Main(String [] args)的方法。

Please note that JVM considers var args public static void main(String...args) same as public static void main(String[] args).

如果要调用重载方法,那么我们需要从带有签名公共静态void main的主要方法调用它(String [] args)。
例如:

package org.arpit.theitroad;
 
public class OverloadTestMain {
    public static void main(String[] args) {
        System.out.println("Inside main(String[] args)");
        main(2);
        main(new Integer[] {1,2,3});
    }
 
    public static void main(Integer args) {
        System.out.println("Inside main(Integer args)");
    } 
 
    public static void main(Integer[] arr) {
        System.out.println("Inside main(Integer arr)");
    }
}

运行上面的程序时,我们将得到以下输出。

Inside main(String[] args)
Inside main(Integer args)
Inside main(Integer arr)

正如我们所看到的,我们已从具有字符串[] args的Main方法中称为重载方法(overload)。