0

我有一个如下所示的 Java 类 API:

boolean categoryAdd( String name, String description, String user );

我需要为它创建一个等效的命令行。

命令行参数如何?

像这样

-categoryadd name description user

或者像这样

-categoryadd -categoryname name -categorydescription description -categoryuser user

或者像这样

-categoryadd -categoryname=name -categorydescription=description -categoryuser=user

或者是其他东西?

4

2 回答 2

1

常见用法规定单字符(短)选项采用示例形式-v,多字符(长)选项采用--verbose示例形式。

http://en.wikipedia.org/wiki/Command-line_interface

认真考虑使用 CLI Parsing 库来为您处理所有这些以及更多。

我的首选是JSAP,它功能完整、稳定且非常有用。较新的图书馆使用@Annotations和其他东西,但这为我完成了。

于 2013-09-13T14:31:34.023 回答
0

在用空格分隔的 java 命令行字符串中,因此当您从 CLI 调用方法时,例如:

java MyClass 类别添加名称描述用户

,在您的主课中,您将收到具有 4 个值的 args:

  • 类别添加
  • 姓名
  • 描述
  • 用户

这种方式很容易操作(验证)参数,因为您不需要进行额外的操作来提取传递的变量。

另一方面,在没有额外信息的情况下,从用户方面来说,传递什么样的参数以及传递的顺序非常混乱。在您的第二个和第三个命题中,您“帮助”用户确定他通过了哪些参数。我更喜欢使用等于的第三个命题,因为它很容易解析:您将收到如下参数:

  • -类别添加
  • -categoryname=名称
  • -categorydescription=描述
  • -categoryuser=用户

现在您先延迟并可以使用 string.split(=) 方式解析键值。您的第二个选项也可以完成,但我认为它更棘手

于 2013-09-13T14:12:51.977 回答