强制执行两个选项之一

Make mandatory one of two options

我有这样的命令

@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

我怎样才能实现这种行为?

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

id 选项参数应设置为类型 Long 而不是 long 然后。