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

如何在Java中使用Argparse4j传递列表作为命令行参数

在Java中使用Argparse4j接收列表类型的命令行参数

要让Argparse4j的--list参数接收多个值并以List<String>类型获取,只需要在定义参数时调用.nargs()方法指定可接收的参数数量,具体实现如下:

完整代码示例

import org.argparse4j.ArgumentParsers;
import org.argparse4j.inf.ArgumentParser;
import org.argparse4j.inf.ArgumentParserException;
import org.argparse4j.inf.Namespace;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // 创建解析器
        ArgumentParser parser = ArgumentParsers.newFor("main").build();
        
        // 定义--list参数,指定可接收多个值
        parser.addArgument("-l", "--list")
                .help("Argument list to parse")
                .nargs("+"); // "+"表示至少需要传入1个参数,用"*"则允许0个
        
        try {
            // 解析命令行参数
            Namespace ns = parser.parseArgs(args);
            
            // 以List<String>类型获取参数值
            List<String> listArgs = ns.getList("list");
            
            // 输出结果验证
            System.out.println("传入的列表参数:");
            for (String item : listArgs) {
                System.out.println("- " + item);
            }
        } catch (ArgumentParserException e) {
            parser.handleError(e);
            System.exit(1);
        }
    }
}

关键说明

  • .nargs("+"):要求该参数至少接收1个值,若用户未传值会直接抛出错误提示
  • .nargs("*"):允许该参数接收0个或多个值,适合可选的列表参数
  • 调用ns.getList("list")即可直接获取List<String>类型的参数集合

运行示例

执行命令:

java Main --list foo bar fizz

输出结果:

传入的列表参数:
- foo
- bar
- fizz

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:45:53