如何在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