【问题标题】:calling main method inside main in java在java中调用main中的main方法
【发布时间】:2014-03-26 09:42:49
【问题描述】:

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

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

尝试谷歌。找不到链接。 对不起,如果问题是微不足道的

【问题讨论】:

  • 不要用谷歌搜索,试试看会发生什么。你认为会发生什么?
  • 导致编译错误
  • 你应该查找数组初始化表达式。
  • 这个问题为什么是-3,有道理
  • @Coffee:可能是因为投入了零努力。修复语法并执行它会更快地回答它。

标签: java methods main


【解决方案1】:

您将收到StackOverFlowError。如果你调用无休止的递归调用/深度函数递归。

由于应用程序递归而发生堆栈溢出时引发 太深了。

你需要像这样传递字符串数组

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

【讨论】:

    【解决方案2】:

    你可以使用正确的格式

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

    应该给出 StackOverFlowError(未测试)

    【讨论】:

    • 这是 StackOverFlowError
    【解决方案3】:

    Kugathasan 是对的。

    是的,它确实给出了 StackOverflow 异常。我现在在 Eclipse 中对其进行了测试。

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

    我有一个建议,我认为消除混淆的最佳方法是尝试编码并运行它。有助于解决很多疑问。

    【讨论】:

      【解决方案4】:

      你可以。这是非常合法的。
      此外,它不一定会给出 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"});
      
      }
      

      只是说。

      【讨论】:

        【解决方案5】:

        您可以简单地传递 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
        

        输出:- 嵌套类的main方法内部

        世界你好!

        【讨论】:

        • 不,你不能!虽然编译器不会抱怨,但您创建的递归会很快耗尽堆栈。
        • 这段代码不是递归的,这是调用Main方法的简单代码
        • 从main调用main是什么?
        猜你喜欢
        • 1970-01-01
        • 2012-09-28
        • 1970-01-01
        • 2019-03-24
        • 2016-02-06
        • 2013-11-28
        • 1970-01-01
        • 1970-01-01
        • 2014-03-05
        相关资源
        最近更新 更多