我有一个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
还是其他什么?
答案 0 :(得分:1)
常用用法表示单个字符(短)选项的格式为-v
,多字符(长)选项的格式为--verbose
。
http://en.wikipedia.org/wiki/Command-line_interface
请认真考虑使用CLI解析库,为您和更多人处理所有这些。
我的偏好是JSAP,它功能齐全,稳定且非常实用。较新的库使用@Annotations
和其他东西,但这可以让我完成。
答案 1 :(得分:0)
在由空格分隔的java命令行字符串中,因此当您从CLI调用方法时,如:
java MyClass categoryadd名称描述用户
,在你的主要课程中,你将收到4个值的args:
这样可以很容易地操作(验证)参数,因为您不需要进行额外的操作来提取传递的变量。
从用户方面的另一方面来看,如果没有附加信息,那么通过哪种参数以及以何种顺序传递它会让人感到困惑。 在你的第二和第三个命题中,你“帮助”用户确定他传递的参数。我更喜欢使用equals的第三个命题,因为它很容易解析: 您将收到如下参数:
现在你先延迟,然后用string.split(=)方式解析键值。 你的第二个选择也可以完成,但我认为它更棘手