Есть ли в 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
оказал на состояние.