Java Picocli,如何通过可选值和自定义类型转换器识别选项的存在
Picocli v2.3.0Java Picocli,如何通过可选值和自定义类型转换器识别选项的存在,java,picocli,Java,Picocli,Picocli v2.3.0 @CommandLine.Option(names = {"--number-headings"}, arity = "0..1", paramLabel = "levels", description = {"Adds numbers to headings. Optional parameter to set the heading levels to be numbered.", "eg. 2-4"}) public HeadingNumberingRange
@CommandLine.Option(names = {"--number-headings"}, arity = "0..1", paramLabel = "levels", description = {"Adds numbers to headings. Optional parameter to set the heading levels to be numbered.", "eg. 2-4"})
public HeadingNumberingRange numberHeadings;
提供值时,自定义类型转换器已注册并正常工作(mycommand——数字标题2-5
)。但是numberhadings仍然是null
,如果像这样调用:mycommand——数字标题
示例at建议键入的字符串
选项在未提供值时将接收空字符串
因此,当存在选项但未提供任何值时,空字符串是默认值
这使我们能够区分3种情况:
null
)itypecoverter
,当没有提供值时,不会调用itypecoverter
的convert()
方法。那么,当存在选项但没有为自定义类型提供值时,等效的默认值是多少?感谢picocli问题跟踪器上的介绍
从picocli开始,自定义类型转换器可以将空字符串(当选项不带值时)映射到自定义默认值。这个功能包含在刚刚发布的GA版本中