required Boolean with non-default value
还没有人认领这个 Issue。
评估
调研方向
Start by reproducing the annotated command examples using Boolean and boolean, then inspect how @Option required, defaultValue, and help-menu optionality are processed. Compare omitted options with explicit true and false values; done means a required Boolean option has no implicit choice and the help output and command validation consistently reflect that.
由索引模型根据 Issue 内容生成。
描述
spring shell version: 3.1.6
In one of my commands, I want to make sure that the end-user specifically indicates whether they either want A or B by using a Boolean. I don't want to make the choice for the end user.
When I add the following @Option on my command:
@Option(required = true, description = "Description", longNames = "Some long name") Boolean booleanOption
Spring Shell, automatically transforms the booleanOption to defaultValue false. The help menu of the command indicates that the booleanOption is optional.
When transforming into
@Option(required = true, description = "Description", longNames = "Some long name") boolean booleanOption
Still, the help menu indicates the booleanOption as optional. I assume for 2 reasons that this should not be the case: (1) it is a boolean and not Boolean. (2) required is explicitly set to true. The defaultValue is again false.
Setting the defaultValue to 'true' explicitly seems to be working.
@Option(required = true, description = "Description", longNames = "Some long name", defaultValue = "true")boolean booleanOption
It will show that the boolean is optional, but the default value will be true.
But again, I didn't want to choose for the user. I want the end user to articulate their choice when doing a command specifically.
If I write:
@Option(required = true, description = "Description", longNames = "Some long name", defaultValue = "")Boolean booleanOption
Or
@Option(required = true, description = "Description", longNames = "Some long name", defaultValue = "null")Boolean booleanOption
The defaultValue still translates to false (while as a Boolean I would expect it to be able to be null).
Is this the intended behavior?
- 主要语言
- Java
- 星标
- 827
- 派生
- 405
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
spring-projects/spring-shell 的其他 Issue
-
NonInteractiveShellRunner, wrong exit value when Commands cannot be parsed可能已有人在做 @czpilar 于 11 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 72/100
spring-projects/spring-shell#1391 · 2 条评论 ·
-
Options validation error messages in non-interactive mode可能已有人在做 @czpilar 于 12 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 65/100
spring-projects/spring-shell#1390 · 3 条评论 ·
-
ShellInputProvider inputs are not consumed by `ComponentFlow`-based interactive components (e.g. `ConfirmationInput`, `StringInput`)可能已有人在做 @czpilar 于 24 天前认领。 未关闭type/enhancement
难度 3/5 1-2 天 新手友好度 68/100
spring-projects/spring-shell#1383 · 6 条评论 ·
-
area/dependencies type/enhancement
难度 5/5 一周以上 新手友好度 25/100
spring-projects/spring-shell#1213 · 2 个 reaction ·
-
Revisit dependency to Spring Messaging可能已有人在做 @piotrooo 于 298 天前认领。 未关闭area/dependencies type/enhancement
难度 5/5 一周以上 新手友好度 25/100
spring-projects/spring-shell#1205 · 1 条评论 ·
查看 spring-projects/spring-shell 的全部 Issue
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 90/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
apache/rocketmq-dashboard#6896 ·
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 67/100
-
Unrecognized database schema version is treated as a pre-2.0 database可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭bug
难度 2/5 1-3 小时 新手友好度 72/100
OpenIntegrationEngine/engine#496 ·
维护者通常 1 天内回复
-
enhancement good first issue
难度 2/5 1-3 小时 新手友好度 76/100
SasanLabs/VulnerableApp#836 ·
维护者通常 1 天内回复