300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java登录界面命令_Java命令行界面(第15部分):Jargo

java登录界面命令_Java命令行界面(第15部分):Jargo

时间:2020-07-16 05:41:06

相关推荐

java登录界面命令_Java命令行界面(第15部分):Jargo

java登录界面命令

Jargo在其GitHub主页上定义为“一种减轻程序参数/选项处理的工具”。 当已经存在许多其他命令行处理库时,该页面为另一个命令行处理库提供了基本原理 ,该列表的顶部是“因为类型安全性,不变性和可读性很重要”。

Jargo的选项“定义”阶段使用Argument类的通用类型的实例。 这些Argument实例是通过Arguments类上的静态方法创建的,以建立类型,然后使用生成器样式的方法来描述选项。 在下一个屏幕快照中对此进行了演示,该屏幕快照描述了文件路径/名称和详细程度选项的定义(完整的代码清单可在GitHub上找到 )。

Jargo的“定义”舞台

final Argument<String> filePathAndName= stringArgument().description("Path and name of file.").names("--file", "-f").required().build();// Use optionArgument() instead of booleanArgument() to avoid need// to specify true or false as arguments to --verbose/-v optionfinal Argument<Boolean> verbose= optionArgument("--verbose", "-v").description("Enables verbosity.").names("--verbose", "-v").defaultValue(false).build();

上面显示的stringArgument()optionArgument()方法在静态导入(未显示)的Arguments类上调用。 需要将optionArgument()方法用于详细程度标志,以避免要求在详细程度标志后显式声明truefalse

“解析”阶段是使用CommandLineParser类及其流利的API方法实现的,如下面的代码清单所示。

final ParsedArguments parsedArguments= CommandLineParser.withArguments(filePathAndName, verbose).parse(arguments);

CommandLineParser提供的ParsedArguments实例可用于“询问”阶段。 这是通过在ParsedArguments实例上调用“ get”方法并将其传递给适当的Argument实例来实现的。 下一个代码清单演示了这一点。

Jargo的“审讯”阶段

out.println("File path/name is '" + parsedArguments.get(filePathAndName)+ "' and verbosity is set to '" + parsedArguments.get(verbose) + "'.");

以下屏幕快照描述了Jargo的用法。 第一个屏幕快照演示了未指定必需选项时发生的异常堆栈跟踪,第二个屏幕快照演示了正在使用的长和短选项名称。

第一个屏幕快照中显示的堆栈跟踪不是通知用户未指定必需选项的最佳方法。 Jargo通过捕获ArgumentException并调用其getMessageAndUsage()方法来允许返回更好的消息。 可以在GitHub上查看此代码,结果显示在下一个屏幕快照中。

屏幕快照表明已显示在Argument的实例中提供的信息。 Jargo还允许在指定“ help”参数时显式引发异常以提供此信息。 这利用了Arguments类上的静态方法helpArgument(),并且其用法示例包含在GitHub代码清单中 。

选择框架或库来帮助使用Java进行命令行解析时,Jargo的特性需要考虑。

Jargo是开源的,并根据Apache License 2.0版获得许可 。 Jargo的jargo-0.4.1.jar大小约为177 KB,但它对更大的Guava库具有运行时依赖性。 严格来说,对Guava的依赖是一个有意的决定,正如Jargo的基本原理所述 :“因为我爱Guava,并且希望将参数解析库与之很好地集成在一起(该部门将提供更多信息)。” Jargo使用强类型的API调用以编程方式配置预期的命令行选项,而不是使用批注和/或反射。 在拥有如此多基于Java的命令行处理库的领域中,对于希望使用Jargo的Rationale列出的命令行处理库的所有属性来解释为什么另一个库的开发人员来说,Jargo最有可能成为重要的竞争者。这个拥挤的空间得到了发展。

Jargo是一个易于使用的库,用于处理Java中的命令行选项,并利用通用类型的类和特定于类型的静态方法来增强命令行选项的类型安全性。 Jargo需要Guava才能运行,因此最适合已在使用Guava的应用程序。 如果Jargo基本原理中的所有项目对于该开发人员都很重要,则开发人员可能会认真考虑Jargo而不是其他基于Java的替代命令行处理库。

其他参考

Jargo (GitHub) Maven上的Jargo ( Maven存储库 )

翻译自: //09/java-command-line-interfaces-part-15-jargo.html

java登录界面命令

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。