ホームページ  >  記事  >  Java  >  Java 9 の REPL のさまざまな状態は何ですか?

Java 9 の REPL のさまざまな状態は何ですか?

PHPz
PHPz転載
2023-08-18 16:29:17867ブラウズ

REPL は、Read-Evaluate-Print-Loop を表します。これは、JShell のステートメントごとに 1 つずつ、いくつかの状態を保存します。この状態により、コードフラグメントと変数の実行ステータスが決まります。これは、コードの評価に使用される JShell インスタンスの eval() メソッドの結果によって決定できます。

7 つの異なる状態を以下に示します。

  • DROPPED: コード スニペットは非アクティブです。
  • NONEXISTENT: スニペットはまだ存在しないため、非アクティブです。
  • 上書き: コード スニペットは新しいコード スニペットに置き換えられたため、非アクティブになっています。
  • 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。