想象一下,我在args4j中有两个选项:
@Option(name = "-a")
boolean a;
@Option(name = "-b")
boolean b;
是否可以通过注释说我想要a或b(并且只有其中一个)
谢谢!
答案 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
选项设置为一致时显示的消息相同的异常消息。