首頁 > Java > java教程 > 在Java 9中,REPL的不同狀態有哪些?

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

PHPz
發布: 2023-08-18 16:29:17
轉載
891 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板