从同一个类中的另一个方法调用 main 方法

Posted

技术标签:

【中文标题】从同一个类中的另一个方法调用 main 方法【英文标题】:calling main method from another method in the same class 【发布时间】:2013-10-08 09:26:03 【问题描述】:

如何调用main方法?

void prompt()

    System.out.println("Do you want to continue?");
    Scanner confirm = new Scanner(System.in);
String con = confirm.nextLine();
if (con  == "y")

//call the main method once again.


当我使用 主要的(); 它要求“args”的值,但我不确定我应该在其中输入什么值。

【问题讨论】:

为什么要调用main方法?而是在方法中拥有所需的功能并调用它。让main 进行大量计算是非常糟糕的做法 一句话——不要!这闻起来是一个非常糟糕的设计。您最好编写一个有意义的逻辑程序,并且没有这种奇怪和难闻的要求。为什么不使用 while 循环呢?另外,不要将字符串与== 进行比较。请改用equals(...) 方法。 @porfiriopartida:现在,当他返回递归堆栈溢出异常时,您将不得不帮助他。 @HovercraftFullOfEels 别担心,con == "y" 永远不会是真的.. 哦,但你告诉他如何通过那个条件。 感谢您的回答。我只是将代码转移到另一种方法。 【参考方案1】:

java 程序中的main() 方法接受一个字符串数组参数。

public static void main(String[] args)  

如果您不在 main() 中使用变量 args,您可以将 null 传递给它。否则,您需要将 String 数组传递给该方法。

但是,您不应该从应用程序内部调用main() 方法。 main() 方法应该用作应用程序的入口点,以启动程序,而不是用于递归执行该应用程序内的逻辑。如果你有再次需要的功能,你应该把它放在一个单独的方法中。

【讨论】:

【参考方案2】:

main 方法的签名是:public static void main(String[] args)

main 方法接受一个参数:String 类型的元素数组。

public static void main(String[] args)

此数组是运行时系统将信息传递给您的应用程序的机制。例如:

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


public static void prompt()         
    System.out.println("Do you want to continue?");
    Scanner confirm = new Scanner(System.in);
    String con = confirm.nextLine();
    if (con  == "y") 

      String[] args = <set string array>;
      main(args);

    


更多详情,请看这个Oracle文档:The main Method

【讨论】:

以上是关于从同一个类中的另一个方法调用 main 方法的主要内容,如果未能解决你的问题,请参考以下文章

如何从同一类中的另一个方法检索最后插入的 id?

如何从同一个类中的另一个构造函数调用抽象类的构造函数(方法重载)[重复]

使用 System.exit() 调用同一类中的另一个方法

如何从 React.js 中的另一个类组件调用方法

如何使用客户端调用的另一个类中的方法

Python 3 - 调用方法来更改类中的另一个方法