重置 picocli 选项字段
reset picocli Option field
我正在尝试提高许多命令的性能,如 所述。该解决方案的一部分是重用相同的 Commandline
对象,该对象正在包装一个其字段包含 picocli 注释的对象。在某些情况下,此对象在使用之间需要 "reset",因为并非每个字段都由每个命令设置,并且如果某些字段具有前一个实例的旧值,则会导致错误的行为。我尝试使用 @Option
注释的 defaultValue
属性,但它似乎并没有在每次调用时重置字段值。
我是否必须编写自己的 reset()
方法,或者有没有办法使用 picocli 来完成此操作?
请注意,我仍在使用 picocli 3.9.6,但我打算升级到 4.x,所以如果这是解决方案的一部分,那很好。
Picocli 在解析命令行参数之前立即自动将所有 @Option
和 @Parameter
注释的字段重置为其默认值(可能是 null
)。 (这就是允许 CommandLine
对象被重用的原因。)不需要用户定义的 reset
方法。
I tried to use the defaultValue attribute of the @Option annotation, but it did not seem to reset the field value on each call.
您能否提供一个重现此问题的示例?
或者,当您在应用程序中重现该问题时,您可以 运行 系统 属性 -Dpicocli.trace=DEBUG
和 post 输出吗?
Note I'm still on picocli 3.9.6, but I do plan to upgrade to 4.x, so if that's part of the solution, that's fine.
请升级到4.x,最新版本的picocli有很多错误修复和新功能,总体上好多了。但是,"reset" 行为长期以来一直是 picocli 的一部分,当然在 3.x 版本中,甚至可能更早。
我正在尝试提高许多命令的性能,如 Commandline
对象,该对象正在包装一个其字段包含 picocli 注释的对象。在某些情况下,此对象在使用之间需要 "reset",因为并非每个字段都由每个命令设置,并且如果某些字段具有前一个实例的旧值,则会导致错误的行为。我尝试使用 @Option
注释的 defaultValue
属性,但它似乎并没有在每次调用时重置字段值。
我是否必须编写自己的 reset()
方法,或者有没有办法使用 picocli 来完成此操作?
请注意,我仍在使用 picocli 3.9.6,但我打算升级到 4.x,所以如果这是解决方案的一部分,那很好。
Picocli 在解析命令行参数之前立即自动将所有 @Option
和 @Parameter
注释的字段重置为其默认值(可能是 null
)。 (这就是允许 CommandLine
对象被重用的原因。)不需要用户定义的 reset
方法。
I tried to use the defaultValue attribute of the @Option annotation, but it did not seem to reset the field value on each call.
您能否提供一个重现此问题的示例?
或者,当您在应用程序中重现该问题时,您可以 运行 系统 属性 -Dpicocli.trace=DEBUG
和 post 输出吗?
Note I'm still on picocli 3.9.6, but I do plan to upgrade to 4.x, so if that's part of the solution, that's fine.
请升级到4.x,最新版本的picocli有很多错误修复和新功能,总体上好多了。但是,"reset" 行为长期以来一直是 picocli 的一部分,当然在 3.x 版本中,甚至可能更早。