我知道当您在main
中创建Class
的{{1}}方法时,请按以下方式创建:
Java
我也知道名为public static void main(String[] args)
的{{1}} array
用于在Strings
方法中输入命令行参数,但我在{{1}上开发应用程序我从来没有使用过它,因为我总是按args
输入我的值。
使用main
而不是命令行参数是一种不好的做法? Eclipse
列出了另一个目的吗?我什么时候应该使用Scanner
数组?
提前致谢!
答案 0 :(得分:3)
按相反的顺序:
我什么时候应该使用
args
数组?
传递命令行参数时。
args
列出了另一个目的吗?
没有。它用于传递命令行参数。
使用
Scanner
而不是命令行参数是不好的做法?
并不总是可以使用Scanner
。 Scanner
可能从STDIN读取,但在许多UNIX系统中,它首选从STDIN读取命令输入并使用命令行参数用于程序选项(例如--help
或{{ 1}})。
答案 1 :(得分:0)
Scanner
和main
的参数是两个完全不同的东西。扫描仪可用于询问用户某种动作。当您想要从其他应用程序或通过命令行启动jar时,main
的参数是相关的。熟化:是否使用Scanner
或参数是一个软件设计的问题,而不是编码风格。
答案 2 :(得分:0)
这完全取决于你的情况。问问自己这个问题:"价值来自哪里?我的程序获得这些值的最佳方式是什么?"
如果答案是"用户",然后提示用户,从而引导用户获得所需的值,则可能是最好的答案。
任何其他答案意味着这些值可能来自某个自动化过程,这意味着"提示"是一个糟糕的选择。现在突然有很多选择,再次由你的情况控制:
有时组合是合适的,例如命令行参数以查找配置文件,其中可能包含扫描数据文件的目录。
你甚至可以同时做两个"提示"和命令行参数。如果所有需要的值都作为参数提供,请使用它们,否则提示输入缺失值。然后不提供任何参数将提示所有值。