如何在Java 9的JShell中显示不同的列表命令?
JShell是在Java 9中引入的,它是一个命令行工具,允许我们输入简单的语句、表达式、方法和类,而无需main()方法。
当我们在JShell中输入代码时,代码会被分配一个唯一ID。此ID从1开始,对于在JShell中输入的每个命令都会递增。启动时加载的库也是如此。对于每个导入,都会分配一个唯一ID。它从$1开始,并且为每个加载的代码递增($2、$3等)。有一个内部命令可以列出在会话期间加载和输入的所有代码,然后使用“/list”命令。
/list /list [ID] /list [Code_Name] /list -start /list -all
- /list: 此命令显示当前会话中输入的所有活动代码(不包括JShell启动时加载的代码)。
- /list [ID]: 此命令显示与输入的ID对应的源代码。
- /list [代码名称]: 显示与输入的名称对应的源代码。
- /list -start: 此命令显示JShell启动时加载的所有代码。启动会话时,将显示默认预加载的所有导入,以及您可能想要预加载的代码(这一点将在第三部分“自定义JShell的启动”一章中解释)。
- /list -all: 此命令列出在JShell会话期间输入的所有活动、非活动、错误和预加载代码。
在下面的代码片段中,我们可以使用“/list -all”命令列出所有输入的导入、表达式等。
jshell> /imports
| import java.io.*
| import java.math.*
| import java.net.*
| import java.nio.file.*
| import java.util.*
| import java.util.concurrent.*
| import java.util.function.*
| import java.util.prefs.*
| import java.util.regex.*
| import java.util.stream.*
jshell> LocalDate localDate = LocalDate.of(2020, 04, 10)
| Error:
| cannot find symbol
| symbol: class LocalDate
| LocalDate localDate = LocalDate.of(2020, 04, 10);
| ^-------^
| Error:
| cannot find symbol
| symbol: variable LocalDate
| LocalDate localDate = LocalDate.of(2020, 04, 10);
| ^-------^
jshell> int x = 10
x ==> 10
jshell> public enum Operate {
...> ADDITION,
...> DIVISION;
...> }
| created enum Operate
jshell> /list -all
s1 : import java.io.*;
s2 : import java.math.*;
s3 : import java.net.*;
s4 : import java.nio.file.*;
s5 : import java.util.*;
s6 : import java.util.concurrent.*;
s7 : import java.util.function.*;
s8 : import java.util.prefs.*;
s9 : import java.util.regex.*;
s10 : import java.util.stream.*;
e1 : LocalDate localDate = LocalDate.of(2020, 04, 10);
1 : int x = 10;
2 : public enum Operate {
ADDITION,
DIVISION;
}在下面的代码片段中,我们可以使用相同的名称命名一个变量、一个方法,甚至一个类型。然后,我们可以使用“/list”命令显示此名称的不同出现及其对应的类型。
jshell> int x = 10
x ==> 10
jshell> public int x(int y) {
...> return y;
...> }
| created method x(int)
jshell> public long x(long y, long z) {
...> return y + z;
...> }
| created method x(long,long)
jshell> /list x
1 : int x = 10;
2 : public int x(int y) {
return y;
}
3 : public long x(long y, long z) {
return y + z;
}
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP