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

时间:2015-02-13 23:26:12

标签: java file command-line-interface command-line-arguments stdin

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

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

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

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

有没有人在类似的东西上取得任何成功?

1 个答案:

答案 0 :(得分:1)

argparse4j不会对setDefault()传递的值进行任何转换。因此,您需要将Arrays.asList(new File("-"))传递给setDefault()才能获得理想的效果。