首頁  >  文章  >  Java  >  在Java 9中,REPL的不同狀態有哪些?

在Java 9中,REPL的不同狀態有哪些?

PHPz
PHPz轉載
2023-08-18 16:29:17868瀏覽

REPL 代表讀取-評估-列印-循環。它保存了一些狀態,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.<strong>create()</strong>;
      <strong>List<SnippetEvent></strong> events = shell.<strong>eval</strong>("int a, b, sum; " + "a = 12; b = 11; sum = a + b; " +
                                             "System.out.println(sum);" );
      for(<strong>SnippetEvent </strong>event : events) {
         Snippet snippet = <strong>event.snippet()</strong>;
         <strong>Snippet.Status</strong> snippetstatus = shell.<strong>status</strong>(snippet);
         if(snippetstatus == <strong>Status.VALID</strong>) {
            System.out.println("Successfully executed");
         }
      }
   }
}

輸出

<strong>Successfully executed
Successfully executed
Successfully executed  </strong>

以上是在Java 9中,REPL的不同狀態有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除