@Options(name="--in-file")
String fileName;
@Option(name="--table")
String table;
当且仅当未为 --in-file
提供任何值时,我想让 --table
选项成为必需选项。我该怎么做呢?我知道有一些解决方案(我认为至少)我可以用多个类来做到这一点,但是对于一个简单的程序中只有两个参数来说这似乎有点过分了。
我知道我也可以在解析完成后手动检查值,但这似乎违背了使用 args4j 的目的。
最佳答案
您可以像您提到的那样使用forbids
。
@Options(name="--in-file", forbids{"--table"})
String fileName;
@Option(name="--table", forbids={"--in-file"})
String table;
你可以在你的类中添加检查条件。
if (fileName == null && table == null) {
throw new CmdLineException();
}
您可以将异常消息设置为与设置必需
选项时显示的消息相同。
关于java - args4j:如果给出/未给出另一个参数,如何使参数成为必需的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28161838/