0

如果我有一堂课:

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
}

为什么我不能HelloWorld.main(args)从另一个班级调用 main ?

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

System.out.println(msg);

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

4

2 回答 2

2

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

  • 将方法的返回类型更改mainvoid
  • 删除throws IOException,因为没有抛出异常,编译器会抱怨它
  • 在打开方法main之前关闭方法createMessage
  • 将方法createMessage设为静态,因此可以从静态方法中调用它main
  • 作为返回类型添加String到方法中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!";
于 2016-02-25T01:06:12.253 回答
0

是的,您可以从另一个类调用 main 方法。

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

于 2016-02-25T00:25:16.250 回答