Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

สถานะสถานะต่าง ๆ ของ REPL ใน Java 9 คืออะไร


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