多文件输入,带stdin//Argparse4j,Java

多文件输入,带stdin//Argparse4j,Java,java,file,command-line-interface,command-line-arguments,stdin,Java,File,Command Line Interface,Command Line Arguments,Stdin,我正在尝试使用Argparse4j构建一个命令行实用程序。我需要创建一个选项,该选项接受多个输入文件,但也接受stdin: subparser.addArgument("input")

我正在尝试使用Argparse4j构建一个命令行实用程序。我需要创建一个选项,该选项接受多个输入文件,但也接受stdin:

        subparser.addArgument("input")                                                                                                                                                                                                                                                                      
                .nargs("*")                                                                                                                                                                                                                                                                                               
                .setDefault(Arrays.asList("-"))                                                                                                                                                                                                                                                                           
                .type(Arguments.fileType().acceptSystemIn().verifyCanRead());                                                                                                                                                                                                                                             
如果我不使用
数组.asList
,那么有时我只会得到一个
文件
对象,而不是
列表

但是,使用
nargs(“*”
也会使列表中出现“-”(作为字符串),而不是实际的
文件
对象


是否有人成功地实现了类似的功能?

argparse4j不会对
setDefault()
传递的值进行任何转换。因此,您需要将
Arrays.asList(新文件(“-”)传递到
setDefault()
,以获得所需的效果