You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让PicoCLI将选项后后续项解析为字符串而非标志

PicoCLI让选项接受连字符开头参数的解决方法

你遇到的问题是PicoCLI默认会把以-开头的字符串识别为新选项,而非前一个选项的参数,导致-t -b这种写法报错。要解决这个问题,只需给-t选项添加acceptsHyphenatedValues = true配置,强制PicoCLI将连字符开头的内容当作该选项的参数。

修改后的参数定义如下:

@Option(names = "-b")
String bOption;

@Option(names = "-t", arity = "1..*", acceptsHyphenatedValues = true)
public void checkTOption(List<String> values) {
  if (values != null && !values.isEmpty()) {
    tOption = values.get(values.size() - 1);
  }
}

修改后执行命令:

$ my-cli -t -b -b "some value" my-file.txt

解析结果会符合预期:

  • t: 字符串"-b"
  • b: 字符串"some value"

同时,原来的-t可多次指定、取最后一个值的逻辑不受影响,以下两条命令依然等价:

$ my-cli -t a -t b -b "some string" -t c my-file.txt
$ my-cli -t c -b "some string" my-file.txt

内容的提问来源于stack exchange,提问作者Scott Crooks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:52:05