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

วิธีแสดงคำสั่ง /list ต่างๆ ใน JShell ของ Java 9


JShell ถูกนำมาใช้ใน Java 9 และเป็นเครื่องมือ command-line ที่ช่วยให้เราป้อนคำสั่ง อย่างง่าย นิพจน์ เมธอด และคลาสโดยไม่ต้องมีเมธอด main()

เมื่อเราป้อนโค้ดใน JShell โค้ดจะได้รับ unique ID ID นี้เริ่มที่ 1 และเพิ่มขึ้นสำหรับแต่ละคำสั่งที่ป้อนใน JShell สิ่งเดียวกันก็ถูกต้องสำหรับไลบรารีที่โหลดตอนเริ่มต้น สำหรับแต่ละ import จะมีการกำหนด unique ID เริ่มด้วย $1 และเพิ่มขึ้นสำหรับแต่ละโค้ดที่โหลด ($2, $3 ฯลฯ) มีคำสั่งภายในเพื่อแสดงรายการโค้ดที่โหลดและป้อนในช่วงเซสชัน ใช้คำสั่ง "/list"

/list
/list [ID]
/list [Code_Name]
/list -start
/list -all
  • /list: คำสั่งนี้แสดงโค้ดที่ใช้งานอยู่ทั้งหมดที่ป้อนในเซสชันปัจจุบัน (ไม่รวมโค้ดที่โหลดตอน JShell เริ่ม)
  • /list [ID]: คำสั่งนี้แสดงโค้ดต้นฉบับที่สอดคล้องกับ ID ที่ป้อน
  • /list [Code_Name]: แสดงโค้ดต้นฉบับที่สอดคล้องกับชื่อที่ป้อน
  • /list -start: คำสั่งนี้แสดงโค้ดทั้งหมดที่โหลดตอน JShell เริ่ม เมื่อเริ่มเซสชัน ทุก import ที่โหลดไว้ล่วงหน้าจะแสดง และอาจรวมโค้ดที่คุณต้องการโหลดล่วงหน้า (จุดนี้จะอธิบายในส่วนที่สาม บท Customizing the start of JShell)
  • /list -all: คำสั่งนี้แสดงรายการโค้ด active, inactive, error และ preloaded ทั้งหมดที่ป้อนในช่วงเซสชัน JShell

ในตัวอย่างโค้ดด้านล่าง เราสามารถแสดงรายการ imports, expressions ทั้งหมดที่ป้อน โดยใช้คำสั่ง "/list -all"

jshell> /imports |      import java.io.* |      import java.math.* |      import java.net.* |      import java.nio.file.* |      import java.util.* |      import java.util.concurrent.* |      import java.util.function.* |      import java.util.prefs.* |      import java.util.regex.* |      import java.util.stream.* jshell> LocalDate localDate = LocalDate.of(2020, 04, 10) |      Error: |      cannot find symbol |          symbol: class LocalDate |      LocalDate localDate = LocalDate.of(2020, 04, 10); |      ^-------^ |      Error: |      cannot find symbol |          symbol: variable LocalDate |      LocalDate localDate = LocalDate.of(2020, 04, 10); |      ^-------^ jshell> int x = 10 x ==> 10 jshell> public enum Operate { ...>      ADDITION, ...>      DIVISION; ...>  } | created enum Operate jshell> /list -all s1 : import java.io.*; s2 : import java.math.*; s3 : import java.net.*; s4 : import java.nio.file.*; s5 : import java.util.*; s6 : import java.util.concurrent.*; s7 : import java.util.function.*; s8 : import java.util.prefs.*; s9 : import java.util.regex.*; s10 : import java.util.stream.*; e1 : LocalDate localDate = LocalDate.of(2020, 04, 10); 1 : int x = 10; 2 : public enum Operate {      ADDITION,      DIVISION;  }

ในตัวอย่างโค้ดด้านล่าง เราสามารถตั้งชื่อ ตัวแปร, เมธอด, หรือแม้แต่ type ด้วยชื่อเดียวกันได้ แล้วเราสามารถใช้คำสั่ง "/list" ที่แสดง occurrence ต่างๆ ของชื่อนี้พร้อมกับประเภทที่สอดคล้อง

jshell> int x = 10 x ==> 10 jshell> public int x(int y) { ...>      return y; ...>  } | created method x(int) jshell> public long x(long y, long z) { ...>      return y + z; ...>  } | created method x(long,long) jshell> /list x 1 : int x = 10; 2 : public int x(int y) {      return y;  } 3 : public long x(long y, long z) {      return y + z;  }