eclipse中的非静态main方法

Posted

技术标签:

【中文标题】eclipse中的非静态main方法【英文标题】:non-static main method in eclipse 【发布时间】: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 对象。 【参考方案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?

【讨论】:

以上是关于eclipse中的非静态main方法的主要内容,如果未能解决你的问题,请参考以下文章

varargs 方法的非 varargs 调用

Java中的main方法

java复习路4

非静态变量 this 不能从 main 方法中的静态上下文中引用

如何在静态库项目中添加 main 方法?

eclipse里面没有,或者有错误的主函数就不能run as java application