【发布时间】:2019-05-05 21:31:41
【问题描述】:
在 JShell 中,有什么方法可以删除您执行的语句,就像它从未发生过一样?
例如,假设我们有以下代码。
JShell shell = JShell.create();
shell.eval("int x = 5;");
shell.eval("x = 7;");
JShell 中有什么东西可以倒退一步吗?也就是说,类似于 goBackOneStep() 的方法,在执行它之后,将 x 设置回 5。
shell.goBackOneStep();
shell.eval("x") // x is evaluated to 5
我注意到在JShell API 中有一个名为drop(Snippet) 的方法似乎从历史记录中删除了Snippet,但它并没有消除Snippet 对状态的任何影响。
【问题讨论】: