Java 9 中 REPL 的不同狀態是什麼?
REPL 代表 Read-Evaluate-Print-Loop(讀取-求值-列印-迴圈)。它包含一些狀態,JShell 中的每個語句都有一個狀態。此狀態會拒絕程式碼片段和變數的執行狀態。這可以透過JShell 例項的eval() 方法的結果來確定,該方法會評估程式碼。
下面列出了七個不同的狀態。
- DROPPED:程式碼片段處於非活動狀態。
- NONEXISTENT:程式碼片段處於非活動狀態,因為它尚不存在。
- OVERWRITTEN:程式碼片段處於非活動狀態,因為它已被新的程式碼片段替換。
- RECOVERABLE_DEFINED:程式碼片段是宣告程式碼片段,其主體中可能存在可恢復的未解析引用或其他問題。
- RECOVERABLE_NOT_DEFINED:程式碼片段是宣告程式碼片段,可能存在可恢復的未解析引用或其他問題。
- REJECTED:程式碼片段處於非活動狀態,因為編譯在初始評估時失敗,並且無法透過進一步更改 JShell 狀態而變得有效。
- VALID:程式碼片段是有效的程式碼片段。
示例
import java.util.List;
import jdk.jshell.*;
import jdk.jshell.Snippet.Status;
public class JShellTest {
public static void main(String args[]) {
JShell shell = JShell.create();
List<SnippetEvent> events = shell.eval("int a, b, sum; " + "a = 12; b = 11; sum = a + b; " +
"System.out.println(sum);" );
for(SnippetEvent event : events) {
Snippet snippet = event.snippet();
Snippet.Status snippetstatus = shell.status(snippet);
if(snippetstatus == Status.VALID) {
System.out.println("Successfully executed");
}
}
}
}輸出
Successfully executed Successfully executed Successfully executed
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP