Maison  >  Article  >  Java  >  Quels sont les différents états de REPL dans Java 9 ?

Quels sont les différents états de REPL dans Java 9 ?

PHPz
PHPzavant
2023-08-18 16:29:17818parcourir

REPL signifie lire-évaluer-imprimer-boucle. Il enregistre un état, un pour chaque instruction dans JShell. Cet état détermine l'état d'exécution des fragments de code et des variables. Il peut être déterminé par les résultats de la méthode eval() de l'instance JShell , qui est utilisée pour évaluer le code.

Sept statuts différents sont répertoriés ci-dessous.

  • DROPPED : L'extrait de code est inactif.
  • NONEXISTENT : L'extrait est inactif car il n'existe pas encore.
  • OVERWRITTEN : L'extrait de code est inactif car il a été remplacé par un nouvel extrait de code.
  • RECOVERABLE_DEFINED : Un extrait de code est un extrait de code déclaratif dont le corps peut contenir des références non résolues ou d'autres problèmes.
  • RECOVERABLE_NOT_DEFINED : Un extrait de code est un extrait de code déclaratif dont le corps peut contenir des références non résolues ou d'autres problèmes.
  • REJECTÉ : l'extrait de code est inactif car la compilation a échoué lors de l'évaluation initiale et ne peut pas être rendue valide en apportant d'autres modifications à l'état de JShell.
  • VALIDE : L'extrait de code est un extrait de code valide.

Exemple

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");
         }
      }
   }
}

Sortie

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer