gpt4 book ai didi

java - 使用 Apache Commons CLI 的互斥选项

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:51:41 24 4
gpt4 key购买 nike

我可以使用以下方法创建 2 个互斥选项:

Option a = OptionBuilder.create("a");
Option b = OptionBuilder.create("b");

OptionGroup optgrp = new OptionGroup();
optgrp .setRequired(true);
optgrp .addOption(a);
optgrp .addOption(b);

以上将强制用户提供选项 a 或选项 b。

但是如果我有第三个选择,c:

Option c = OptionBuilder.create("c");

是否可以创建互斥选项,以便:

或者:

  1. 必须提供选项 a 或
  2. 必须同时提供选项 b 和 c

我找不到使用 OptionGroup 的方法吗?

最佳答案

作为解决此问题的方法,我实现了以下方案,虽然不理想,但是..

public static void validate(final CommandLine cmdLine) {
final boolean aSupplied = cmdLine.hasOption(A);

final boolean bAndCSupplied = cmdLine.hasOption(B) && cmdLine.hasOption(C);

final boolean bOrCSupplied = !bAndCSupplied && (cmdLine.hasOption(B) || cmdLine.hasOption(C));

if ((aSupplied && bAndCSupplied) || (!aSupplied && !bAndCSupplied)
|| (aSupplied && bOrCSupplied )) {
throw new Exception(...);
}
}

关于java - 使用 Apache Commons CLI 的互斥选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27821671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com