我正在使用 JCommander 解析我的一个 Java 程序中的命令行参数。我的程序需要一个-p
我声明为的参数(调用它),variableArity
它可以接受任意数量的参数(包括 0)。我需要始终将-p
标志传递给程序,无论它是否接受任何参数,以便在没有传递任何内容时将其解析为空列表,如果传递了至少一个参数,则将其解析为字符串列表。问题是,每当我没有向-p
标志传递任何内容时,程序都会抛出一个ParameterException
,使我的程序崩溃。JCommander 是否支持这种行为,还是我需要找到另一种方法来做到这一点?
举个例子,如果我调用我的程序:
java program -p -arg1 ...
我希望将相应的列表解析为空列表,如果我调用它:
java program -p p1 p2 -arg1 ...
我希望将相应的 List 解析为包含p1
and的列表p2
。