为什么不调用静态方法" main"来自另一个班级的班级?

时间:2016-02-25 00:17:21

标签: java static-methods main-method

如果我有课:

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
}

为什么我不能将main作为HelloWorld.main(args)来自另一个类?

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

System.out.println(msg);

按照我们称之为静态方法的方式。

2 个答案:

答案 0 :(得分:2)

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

  • 将方法main的返回类型更改为void
  • 删除了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方法。主要方法是程序的入口点,这意味着JVM会自动调用它来启动程序。在main方法中,打印hello world消息。您可以通过使用方法createMessage创建消息来完成此操作。在此方法完成执行后,您将create消息传递给方法System.out.println(),这是Java的方法,用于将文本输出到控制台。

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

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

这一行:

        return "Hello World!";

答案 1 :(得分:0)

是的,你可以从另一个班级调用main方法。

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