如何从控制台将参数传递给除 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
- 一个String
s 的数组)。
您应该在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?的主要内容,如果未能解决你的问题,请参考以下文章