【问题标题】:non-static main method in eclipseeclipse中的非静态main方法
【发布时间】:2019-05-22 21:40:47
【问题描述】:

我刚开始使用 Eclipse IDE 学习 java。我注意到主要方法必须是静态的,否则它会引发错误。因此,我必须为每个用户给定的输入声明许多 Scanner 类的对象。有没有办法让主方法非静态或在eclipse中不带static关键字定义主方法??

【问题讨论】:

  • 您能否澄清一下“因此我必须为每个用户给定的输入声明许多 Scanner 类的对象”?最好有代码(见minimal reproducible example)。
  • 我注意到 main 方法必须是静态的,否则它会引发错误。 正确。 main 方法必须是 static。 有没有办法使主方法非静态或在eclipse中不使用static关键字定义主方法? 没有(使用Java)。是的,如果您使用另一种语言,其中 main 不需要为 static。
  • 包含代码(可能在代码审查中,如果它是主题但不在此处);您通常不应为每个输入流创建多个 Scanner 对象。

标签: java eclipse static main


【解决方案1】:

有没有办法使主方法成为非静态方法或在没有 static 关键字 [...] 的情况下定义主方法?

不,这是 java 工作原理的一部分。 没有其他办法了。 但它不应该影响您的应用程序,因为您始终可以创建主类的实例并在其上调用另一个方法:

public class X {

    public static void main(String args[]) {
        new X().nonStaticMain();
    }

    public void nonStaticMain() {
        // just pretend this is your main
    }
}

【讨论】:

  • 我建议将应用程序代码放入X的构造函数中并调用XApp。
【解决方案2】:

main 方法是 JVM 在编译期间查找的第一个方法。这个 main 方法甚至必须在类的任何对象实例化之前执行。以便稍后这些实例化的对象将调用其他必需的方法。因此,静态将帮助 main 在对象实例化之前运行。没有 static 关键字就无法运行 main 方法。

【讨论】:

    【解决方案3】:

    答案是否定的。 你也可以看看这些链接:

    [仔细看看“Hello World!”应用] (https://docs.oracle.com/javase/tutorial/getStarted/application/index.html)

    Why is the Java main method static?

    【讨论】:

      猜你喜欢
      • 2014-08-25
      • 2013-12-19
      • 2011-12-15
      • 2018-10-27
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多