JShell เป็นเครื่องมือ Interactive Java Shell รันโค้ด Java จาก shell แสดงผลทันที เป็น REPL (Read Evaluate Print Loop) รันจาก command line เริ่ม JShell ด้วย jshell ออกด้วย /exit สำหรับสนิปเพทเล็ก ไม่ต้องสร้าง main() method
สามารถใช้งานคอลเลกชันหลักได้ เช่น list map และ set ในตัวอย่างนี้ใช้ ArrayList กับสถานการณ์ต่างๆ
ตัวอย่าง: ArrayList ใน JShell
C:\Users\User\Desktop\Java 9 QNA>jshell
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro
jshell> ArrayList<String> list = new ArrayList<String>();
list ==> []
jshell> list.add("Jai");list.add("Adithya");list.add("Raja");list.add("Chaitanya");
$2 ==> true
$3 ==> true
$4 ==> true
$5 ==> true
jshell> list
list ==> [Jai, Adithya, Raja, Chaitanya]
jshell> list.isEmpty()
$7 ==> false
jshell> list.get(3)
$8 ==> "Chaitanya"
jshell> list.get(9)
| java.lang.IndexOutOfBoundsException thrown: Index 9 out-of-bounds for length 4
| at Preconditions.outOfBounds (Preconditions.java:64)
| at Preconditions.outOfBoundsCheckIndex (Preconditions.java:70)
| at Preconditions.checkIndex (Preconditions.java:248)
| at Objects.checkIndex (Objects.java:372)
| at ArrayList.get (ArrayList.java:440)
| at (#9:1)
jshell> list.size()
$10 ==> 4
jshell> if(list.isEmpty()) System.out.println("Empty"); else System.out.println("Not Empty");
Not Empty
เมธอด ArrayList ที่ใช้บ่อยใน JShell
add(e) - เพิ่ม elementget(index) - ดึง element ตาม indexset(index, e) - แทนที่ elementremove(index) - ลบ elementsize() - จำนวน elementsisEmpty() - ว่างหรือไม่contains(e) - มี element นี้หรือไม่clear() - ลบทั้งหมดaddAll(c) - เพิ่มจาก collection อื่นsubList(from, to) - ดู sublist
JShell แสดง exception stack trace สวยงาม ช่วย debug IndexOutOfBoundsException ได้ง่าย