为什么不从另一个 class 调用 class 的静态方法 "main"?

Why not call the static method "main" of a class from another class?

如果我有 class:

public class HelloWorld {
  public static String main(String[] args) throws IOException {

 public createMessage(){

 String message = "Hello World!";

  }

 }
 return message; //return of the main static method
}

为什么我不能从另一个 class 调用 main 作为 HelloWorld.main(args)

String msg = (String) HelloWorld.main(args);

System.out.println(msg);

按照我们调用静态方法的方式。

是的,您可以从另一个 class.

调用 main 方法

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

您的代码无效 Java 代码。它不编译。我使用以下步骤修复了编译错误:

  • 将方法 main 的 return 类型更改为 void
  • 删除throws IOException,因为没有抛出异常,编译器会抱怨它
  • 关闭方法 main 打开方法 createMessage
  • 使方法 createMessage 成为静态的,因此可以从静态方法 main
  • 中调用它
  • String 作为 return 类型添加到方法 createMessage
  • 将 return 语句移动到方法 createMessage

这是固定码:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println(createMessage());
    }

    public static String createMessage() {
        String message = "Hello World!";
        return message;
    }
}

您可能不想自己从另一个方法调用 main 方法。 main 方法是程序的入口点,这意味着 JVM 会自动调用它来启动您的程序。在 main 方法中,您打印 hello world 消息。您可以通过使用方法 createMessage 创建消息来完成此操作。此方法执行完毕后,将创建消息传递给方法 System.out.println(),该方法是 Java 的方法,用于将文本输出到控制台。


您可以通过替换这两行来进一步简化您的代码

        String message = "Hello World!";
        return message;

这一行:

        return "Hello World!";