我正在尝试使用Argparse4j来构建命令行实用程序。我需要创建一个接受多个输入文件的选项,但也接受stdin:
subparser.addArgument("input")
.nargs("*")
.setDefault(Arrays.asList("-"))
.type(Arguments.fileType().acceptSystemIn().verifyCanRead());
如果我不使用Arrays.asList
,那么有时候我会得到File
个对象,而不是List<File>
。
然而,使用nargs("*")
也使得我在列表中得到“ - ”(作为字符串),而不是实际的File
对象。
有没有人在类似的东西上取得任何成功?
答案 0 :(得分:1)
argparse4j不会对setDefault()
传递的值进行任何转换。因此,您需要将Arrays.asList(new File("-"))
传递给setDefault()
才能获得理想的效果。