【问题标题】:Why the main method should be in static [duplicate]为什么主要方法应该是静态的[重复]
【发布时间】:2014-11-02 11:59:19
【问题描述】:

以下代码给出了错误,因为我没有将静态关键字放在主方法中。请解释为什么 main 方法在没有 static 关键字的情况下不起作用。

public class Test {
public void main(String args[]) {
    try {
        int a = new Integer(10);
        System.out.println(a);
    } catch (Exception e) {
        System.out.println(e);
    }
}

}

Error:Main 方法在 Test 类中不是静态的,请将 main 方法定义为: public static void main(String[] args)

【问题讨论】:

  • 因为没有类实例可供JVM调用main方法。这是语言的要求,为什么还要它?
  • 因为在实例级别放置“入口”函数是没有意义的。此外,它会在加载类时出现。 JVM 不需要 Test 的实例来调用它。

标签: java


【解决方案1】:

由于main方法是staticJava virtual Machine可以在不创建任何包含main方法的类的instance的情况下调用它。

如果 main 方法未声明为静态,则 JVM 必须创建 main Class 的实例,并且由于构造函数可以重载并且可以有参数,JVM 没有任何确定且一致的方法可以在其中找到 main 方法Java。

另请参阅this 以获得详细且解释清楚的答案。

【讨论】:

    猜你喜欢
    • 2019-08-07
    • 2012-09-15
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多