如何在Java 9的JShell中打印以前键入的代码段?

JShellJava 9中引入的官方Read-Evaluate-Print-Loop(REPL)。它提供了一个交互式外壳,可以快速进行原型设计,调试和学习Java和Java API,而无需main()方法。

JShell中的“ / list”命令会打印出该特定会话的所有先前键入的代码段,并带有一个称为代码段ID的唯一标识符默认情况下,输出不包含任何仅包含可以显示的有效语句或表达式的代码段。我们需要查看所有先前键入的代码都包含错误,然后将-all参数传递给/ list命令。

在下面的代码片段中,我们在JShell中创建了一些语句,例如expression,class,method等。

C:\Users\User>jshell
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro

jshell> int x=20
x ==> 20

jshell> "Java 9"
$2 ==> "Java 9"

jshell> System.out.println($2)
Java 9

jshell> class Test {
...> }
| created class Test

jshell> void print() {
...> System.out.println("Nhooo");
...> }
| created method print()jshell> print()Nhooo

jshell> System.out.println(x)
20

在下面的代码段中,我们可以使用“ / list”命令查看所有先前键入的代码段。

jshell> /list

1 : int x=20;
2 : "Java 9"
3 : System.out.println($2)
4 : class Test {
}
5 : void print() {
System.out.println("Nhooo");
}
6 : print()7 : System.out.println(x)