Args4j:是否可以通过两个(或更多)选项需要一个且唯一的选项?

时间:2016-04-15 13:33:04

标签: java args4j

想象一下,我在args4j中有两个选项:

@Option(name = "-a")
boolean a;

@Option(name = "-b")
boolean b;

是否可以通过注释说我想要a或b(并且只有其中一个)

谢谢!

1 个答案:

答案 0 :(得分:0)

仅可以使用注释。但是可以使用注释和一次检查。

您可以在注释中使用forbids为您的选项设置最多一个约束。

@Options(name="-a1", forbids{"-a2", "-a3", /*...*/, "-aN"})
T a1;

@Options(name="-a2", forbids{"-a1", "-a3", /*...*/, "-aN"})
T a2;

/*...*/

@Options(name="-aN", forbids{"-a1", "-a2", /*...*/, "-a(N-1)"})
T aN;

您可以在班级中添加一张支票,为您的选项设置至少一个约束。

if (a1 == null && a2 == null && /*...*/ && aN == null) {
    throw new CmdLineException();
}

您可以设置与required选项设置为一致时显示的消息相同的异常消息。