【发布时间】:2014-06-13 23:35:39
【问题描述】:
main 仅接受 String (String args[]) 的数组,以及来自控制台的数组。那么,我如何传递main 需要的其他参数?情况很简单:main 调用需要作为对象的输入参数的方法。找不到这样做的方法。我错过了什么?接口可能吗?
【问题讨论】:
-
问题是,你从哪里得到这些对象来传递:)?想想。
main 仅接受 String (String args[]) 的数组,以及来自控制台的数组。那么,我如何传递main 需要的其他参数?情况很简单:main 调用需要作为对象的输入参数的方法。找不到这样做的方法。我错过了什么?接口可能吗?
【问题讨论】:
如何从命令行传递对象?命令行只是一个字符串(这就是传递给main - 一个Strings 的数组)。
您应该在main 中构造您的对象(并且可能根据命令行参数设置一些属性),然后调用所需的方法。
【讨论】:
main() 方法也可以从 Java 程序中调用,即使很少这样做。我只想指出,命令行不是必需的,或者main() 方法不限于命令行。但是main() 方法的设计历来是受命令行用例推动的。
main() 方法是启动 Java 程序的入口点。如果您对输入参数进行中继,则需要将它们表示为字符串。使用它们来实例化 java 对象并将它们传递给需要它们的方法。传递给main() 的字符串可以表示属性文件的路径,甚至可以表示要启动的spring 上下文的路径。你并没有真正受到限制。考虑main() 方法来引导您的应用程序和字符串参数,以便在需要时将您的应用程序指向任意类型的更复杂信息。
【讨论】:
没有。除了 String[] 之外,您不能将任何其他内容发送到您的 main() 方法。 main() 就是这样使用的。
【讨论】:
你可以使用 varargs 代替 string[],比如:
public static void main(String...args){
}
【讨论】:
(String args[])....这意味着 main 方法只接受来自命令行的字符串作为参数...如果您想要一些其他数据类型,例如 int 或其他东西作为参数...您可以在其中声明它们主要方法如下...
Int x=Integer.parseInt(args[0]);
Int y=Integer.parseInt(args[1]);
...
在 main 方法中这样声明后...你可以将整数值作为参数。
【讨论】: