强制选择两个选项之一

时间:2016-05-12 20:11:51

标签: spring-shell

我有这样的命令

@CliCommand("show user")
public String showUser(
        @CliOption(key = {"email"}) String email,
        @CliOption(key = {"id"}) long id) {
    //return user by id or by email
}

我想强制选择其中一个选项。

show user --id 5 //valid
show user --email user@email.com //valid
show user //not valid
show user id 5 --email user@email.com //not valid

我该如何实现这种行为?

1 个答案:

答案 0 :(得分:1)

您需要在命令实现本身内处理验证(如果设置了两个选项或没有设置选项,则抛出一些异常。)

id选项参数应设置为Long,而不是long