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