该版本仍在开发中,尚未被视为稳定。最新稳定版本请使用Spring Shell 3.4.1spring-doc.cadn.net.cn

音程

Aity 定义了选项解析需要多少参数。spring-doc.cadn.net.cn

遗留注释注解编程Aity设置的使用。这些在注释中有所提及。 以下是样本。
CommandRegistration zeroOrOne() {
	return CommandRegistration.builder()
		.command("example")
		.withOption()
			.longNames("arg")
			.arity(OptionArity.ZERO_OR_ONE)
			.and()
		.build();
}
@Command(command = "example")
String zeroOrOne(
	@Option(arity = OptionArity.ZERO_OR_ONE) String arg)
{
	return String.format("Hi '%s'", arg);
}
@ShellMethod(key = "example")
String zeroOrOne(
	@ShellOption(arity = 1) String arg)
{
	return String.format("Hi '%s'", arg);
}
表1。OptionArity
最小/最大

spring-doc.cadn.net.cn

0 / 0spring-doc.cadn.net.cn

ZERO_OR_ONEspring-doc.cadn.net.cn

0 / 1spring-doc.cadn.net.cn

EXACTLY_ONEspring-doc.cadn.net.cn

1 / 1spring-doc.cadn.net.cn

ZERO_OR_MOREspring-doc.cadn.net.cn

0 / 整数最大值spring-doc.cadn.net.cn

ONE_OR_MOREspring-doc.cadn.net.cn

1 / 整数最大值spring-doc.cadn.net.cn

遗留注释不支持定义最低标准。
CommandRegistration zeroOrOneWithMinMax() {
	return CommandRegistration.builder()
		.command("example")
		.withOption()
			.longNames("arg")
			.arity(0, 1)
			.and()
		.build();
}
@Command(command = "example")
String zeroOrOneWithMinMax(
	@Option(arityMin = 0, arityMax = 1) String arg)
{
	return String.format("Hi '%s'", arg);
}
@ShellMethod(key = "example")
String zeroOrOneWithMinMax(
	@ShellOption(arity = 1) String arg)
{
	return String.format("Hi '%s'", arg);
}

下面的例子中,我们有选项 arg1,定义为 String[] 类型。音程 定义至少需要一个参数,不超过2个。如下所示 特殊例外 TooManyArgumentsOptionExceptionNotEnoughArgumentsOptionException 被抛出以表示元数不匹配。spring-doc.cadn.net.cn

shell:>e2e reg arity-errors --arg1
Not enough arguments --arg1 requires at least 1.

shell:>e2e reg arity-errors --arg1 one
Hello [one]

shell:>e2e reg arity-errors --arg1 one two
Hello [one, two]

shell:>e2e reg arity-errors --arg1 one two three
Too many arguments --arg1 requires at most 2.