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