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

Multiple file input, with stdin // Argparse4j, Java

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

        subparser.addArgument("input")                                                                                                                                                                                                                                                                      
                .nargs("*")                                                                                                                                                                                                                                                                                               
                .setDefault(Arrays.asList("-"))                                                                                                                                                                                                                                                                           
                .type(Arguments.fileType().acceptSystemIn().verifyCanRead());                                                                                                                                                                                                                                             

如果我不使用 Arrays.asList,那么有时我只会得到一个 File 对象,而不是 List<File>

但是,使用 nargs("*") 也使我在列表中得到“-”(作为字符串),而不是实际的 File 对象。

有没有人在类似的事情上取得过成功?

argparse4j 不会对 setDefault() 传递的值进行任何转换。所以你需要将 Arrays.asList(new File("-")) 传递给 setDefault() 以获得所需的效果。