Spring Shell的SingleItemSelector在Windows控制台失效,Ubuntu终端正常
Spring Shell SingleItemSelector在Windows控制台异常问题
使用Spring Shell的SingleItemSelector组件实现选项列表等待用户选择功能,该功能在Ubuntu终端可正常运行,但在Windows控制台中不会等待用户操作,直接获取null值作为输入。推测原因是Windows控制台在用户按下回车执行命令后直接读取了输入。
代码示例
@ShellMethod(key = "single", value = "Single selector") public String singleSelector() { SelectorItem<String> i1 = SelectorItem.of("key1", "value1"); SelectorItem<String> i2 = SelectorItem.of("key2", "value2"); List<SelectorItem<String>> items = Arrays.asList(i1, i2); SingleItemSelector<String, SelectorItem<String>> component = new SingleItemSelector<>(getTerminal(), items, "testSimple", null); component.setResourceLoader(getResourceLoader()); component.setTemplateExecutor(getTemplateExecutor()); SingleItemSelector.SingleItemSelectorContext<String, SelectorItem<String>> context = component .run(SingleItemSelector.SingleItemSelectorContext.empty()); String result = context.getResultItem().flatMap(si -> Optional.ofNullable(si.getItem())).get(); return "You have selected: " + result; }
运行效果
Linux下运行效果

Windows下运行效果

内容的提问来源于stack exchange,提问作者Tommy
相关产品推荐
相关产品推荐

