跳到主要内容

写作

ChatGPT-4o-mini 中英对照 Writing

当需要将内容写入控制台时,您可以始终使用 JDK 的 System.out,这会直接进入 JDK 自己的流。另一个推荐的方法是使用 JLine 的 Terminal 并从中获取 writer 实例。

如果使用目标端点,即 consumer,则不期望返回任何内容,因为 CommandContext 包含对 Terminal 的引用,并且可以从中访问 writer。

CommandRegistration.builder()
.command("example")
.withTarget()
.consumer(ctx -> {
ctx.getTerminal().writer().println("hi");
ctx.getTerminal().writer().flush();
})
.and()
.build();
java

如果使用 @Command,您可以访问 CommandContext 并从中获取 Terminal

@Command
public void example(CommandContext ctx) {
ctx.getTerminal().writer().println("hi");
ctx.getTerminal().writer().flush();
}
java

可以自动注入 Terminal 以获取对其写入器的访问。

@Autowired
Terminal terminal;

@ShellMethod
public void example() {
terminal.writer().println("hi");
terminal.writer().flush();
}
java