有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我应该在哪里使用命令行参数而不是扫描器?

我知道,当您在Java中创建Classmain方法时,您可以按如下方式创建它:

public static void main(String[] args)

我还知道,名为argsarray用于在main方法中输入命令行参数,但我在Eclipse上开发了我的应用程序,我从未使用过它,因为我总是通过Scanner输入值

使用Scanner而不是命令行参数是一种糟糕的做法?args数组还有其他用途吗?什么时候应该使用args数组

提前谢谢


共 (3) 个答案

  1. # 1 楼答案

    Scannermain的参数是两个完全不同的东西。扫描仪可以用来要求用户采取某种行动。当您想从另一个应用程序或通过命令行启动jar时,main的参数是相关的。熟记:是否使用Scanner或参数是软件设计的问题,而不是编码风格的问题

  2. # 2 楼答案

    这完全取决于你的情况。问自己这样一个问题:“这些价值观来自哪里?我的程序接收这些价值观的最佳方式是什么?”

    如果答案是“用户”,那么提示用户从而引导用户选择所需的值可能是最好的答案

    任何其他答案都意味着这些值可能来自某个自动化过程,这意味着“提示”是一个错误的选择。现在突然有很多选择,同样由你的环境控制:

    • 命令行参数
    • 配置文件
    • 数据文件(例如CSV文件)
    • 网络通信(例如web服务)
    • 数据库
    • 。。。还有更多

    有时组合是合适的,例如,使用命令行参数查找配置文件,其中可能包括一个目录,用于扫描数据文件

    您甚至可以同时执行“提示”和命令行参数。如果所有需要的值都作为参数提供,请使用它们,否则会提示输入缺少的值。不提供任何参数将提示输入所有值

  3. # 3 楼答案

    按相反顺序:

    When should I use args array?

    当您传递命令行参数时

    Has args array another purpose?

    不,它是用来传递命令行参数的

    Is it a bad practise to use Scanner instead of command-line parameters?

    并非总是可以使用Scanner。一个Scanner可以从STDIN读取,但在许多UNIX系统中,它更倾向于从STDIN读取命令输入,并为程序选项使用命令行参数(例如 help-h