如何从控制台将参数传递给除 String args[] 之外的 main?

Posted

技术标签:

【中文标题】如何从控制台将参数传递给除 String args[] 之外的 main?【英文标题】:How can I pass arguments to main other than String args[] from the console? 【发布时间】:2014-06-13 23:35:39 【问题描述】:

main 仅接受 String (String args[]) 的数组,以及来自控制台的数组。那么,我如何传递main 需要的其他参数?情况很简单:main 调用需要作为对象的输入参数的方法。找不到这样做的方法。我错过了什么?接口可能吗?

【问题讨论】:

问题是,你从哪里得到这些对象来传递:)?想想。 【参考方案1】:

如何从命令行传递对象?命令行只是一个字符串(这就是传递给main - 一个Strings 的数组)。

您应该在main 中构造您的对象(并且可能根据命令行参数设置一些属性),然后调用所需的方法。

【讨论】:

main() 方法也可以从 Java 程序中调用,即使很少这样做。我只想指出,命令行不是必需的,或者main() 方法不限于命令行。但是main() 方法的设计历来是受命令行用例推动的。【参考方案2】:

main() 方法是启动 Java 程序的入口点。如果您对输入参数进行中继,则需要将它们表示为字符串。使用它们来实例化 java 对象并将它们传递给需要它们的方法。传递给main() 的字符串可以表示属性文件的路径,甚至可以表示要启动的spring 上下文的路径。你并没有真正受到限制。考虑main() 方法来引导您的应用程序和字符串参数,以便在需要时将您的应用程序指向任意类型的更复杂信息。

【讨论】:

谢谢。说得通。我的印象是我正在尝试的事情在 Java 中“没有完成”。我是 OOP 的新手,但仍然克服了程序化程序的冲动。【参考方案3】:

没有。除了 String[] 之外,您不能将任何其他内容发送到您的 main() 方法。 main() 就是这样使用的。

【讨论】:

【参考方案4】:

你可以使用 varargs 代替 string[],比如:

public static void main(String...args)


【讨论】:

【参考方案5】:

(String args[])....这意味着 main 方法只接受来自命令行的字符串作为参数...如果您想要一些其他数据类型,例如 int 或其他东西作为参数...您可以在其中声明它们主要方法如下...

Int x=Integer.parseInt(args[0]);
Int y=Integer.parseInt(args[1]);
...

在 main 方法中这样声明后...你可以将整数值作为参数。

【讨论】:

以上是关于如何从控制台将参数传递给除 String args[] 之外的 main?的主要内容,如果未能解决你的问题,请参考以下文章

控制台应用程序参数,如何将参数传递给 Main 方法

如何将多个参数传递给 Process?

在scala中我可以将重复的参数传递给其他方法吗?

如何将参数传递给 Apache Apex 中的 application.java 类?

如何将字典传递给带有关键字参数的函数?

如何将无限参数和一个或两个参数传递给 JavaScript 函数? [复制]