在java中调用main里面的main方法

时间:2014-02-24 16:00:22

标签: java methods main

我们可以在main中调用main方法吗?

public static void main(String[] args) {
    main({"a","b","c"});
}

试图google.Can't找不到链接。 对不起,如果问题很简单

5 个答案:

答案 0 :(得分:15)

您可以使用正确的格式

main(new String[] {"a","b","c"});

应该给StackOverFlowError(未测试)

答案 1 :(得分:4)

您将获得StackOverFlowError。如果你调用无限递归调用/深度函数递归。

  

因应用程序递归而发生堆栈溢出时抛出   太深了。

您需要传递像

这样的String数组
main(new String[] {"a","b","c"});

答案 2 :(得分:3)

你可以。这非常合法 此外,它不一定会给出StackOverFlowError:

public static void main(String args[]){

    int randomNum = (int)(Math.random()*10);

    if(randomNum >= 8)
    System.exit(0);

    System.out.print("Heyhey!");
    main(new String[]{"Anakin", "Ahsoka", "Obi-Wan"});

}

只是说。

答案 3 :(得分:1)

Kugathasan是对的。

是的,它确实给出了StackOverflow Exception。我现在在Eclipse中测试它。

class CallingMain
{
    public static void main(String[] args)
    {
         main(new String[] {"a","b","c"});
    }
}

我有一个建议,我认为消除混淆的最好方法是尝试编码并运行它。有很多疑惑。

答案 4 :(得分:0)

你可以简单地传递像main(new String[1])这样的参数 - 这一行将调用你程序的main方法。但如果你通过" new String[-1]"这将给出NegativeArraySizeException。这里我给出了一个嵌套内部类的例子,我在这里调用Main方法:

class Outer 
{
    static class NestedInner
    {

        public static void main(String[] args)
        {
            System.out.println("inside main method of Nested class");

        }//inner main
    }//NestedInner
    public static void main(String[] args) 
    {

        NestedInner.main(new String[1] );//**calling of Main method**
        System.out.println("Hello World!");
    }//outer main
}//Outer

输出: - 在嵌套类的主要方法

Hello World!