REPL ย่อมาจาก Read-Evaluate-Print-Loop . มีบางสถานะ และแต่ละคำสั่งใน JShell มีสถานะ สถานะนี้ปฏิเสธการดำเนินการ สถานะของตัวอย่าง และตัวแปร สามารถกำหนดได้จากผลลัพธ์ของ eval() วิธีการของ JShell อินสแตนซ์ซึ่งประเมินรหัส
มีสถานะสถานะที่แตกต่างกันเจ็ดรายการด้านล่าง
- ลดลง :ข้อมูลโค้ดไม่ทำงาน
- ไม่มีอยู่ :ข้อมูลโค้ดไม่ทำงานเพราะยังไม่มี
- เขียนทับ :ข้อมูลโค้ดไม่ทำงานเนื่องจากถูกแทนที่ด้วยตัวอย่างใหม่
- RECOVERABLE_DEFINED :ข้อมูลโค้ดคือข้อมูลโค้ดการประกาศที่มีข้อมูลอ้างอิงที่แก้ไขไม่ได้หรือปัญหาอื่นๆ ที่อาจกู้คืนได้
- RECOVERABLE_NOT_DEFINED :ข้อมูลโค้ดคือข้อมูลโค้ดการประกาศซึ่งมีข้อมูลอ้างอิงที่แก้ไขไม่ได้หรือปัญหาอื่นๆ ที่อาจกู้คืนได้
- ปฏิเสธ :ข้อมูลโค้ดไม่ทำงานเนื่องจากการคอมไพล์ล้มเหลวในการประเมินเบื้องต้น และไม่สามารถใช้งานได้เมื่อมีการเปลี่ยนแปลงสถานะ JShell เพิ่มเติม
- ใช้ได้ :ตัวอย่างคือตัวอย่างที่ถูกต้อง
ตัวอย่าง
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