康定网站建设公司,网站域名解析错误怎么解决,muse做网站,广州住房和城乡建设局网站java登录界面命令Jargo在其GitHub主页上定义为“一种减轻程序参数/选项处理的工具”。 当已经存在许多其他命令行处理库时#xff0c;该页面为另一个命令行处理库提供了基本原理 #xff0c;该列表的顶部是“因为类型安全性#xff0c;不变性和可读性很重要”。 Jargo的选项… java登录界面命令 Jargo在其GitHub主页上定义为“一种减轻程序参数/选项处理的工具”。 当已经存在许多其他命令行处理库时该页面为另一个命令行处理库提供了基本原理 该列表的顶部是“因为类型安全性不变性和可读性很重要”。 Jargo的选项“定义”阶段使用Argument类的通用类型的实例。 这些Argument实例是通过Arguments类上的静态方法创建的以建立类型然后使用生成器样式的方法来描述选项。 在下一个屏幕快照中对此进行了演示该屏幕快照描述了文件路径/名称和详细程度选项的定义完整的代码清单可在GitHub上找到 。 Jargo的“定义”舞台 final ArgumentString 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 option
final ArgumentBoolean verbose optionArgument(--verbose, -v).description(Enables verbosity.).names(--verbose, -v).defaultValue(false).build(); 上面显示的stringArgument()和optionArgument()方法在静态导入未显示的Arguments类上调用。 需要将optionArgument()方法用于详细程度标志以避免要求在详细程度标志后显式声明true或false 。 “解析”阶段是使用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存储库 翻译自: https://www.javacodegeeks.com/2017/09/java-command-line-interfaces-part-15-jargo.htmljava登录界面命令