1. Pengenalan
Artikel ini adalah mengenai jshell , konsol REPL (Read-Evaluate-Print-Loop) interaktif yang digabungkan dengan JDK untuk rilis Java 9 yang akan datang. Bagi mereka yang tidak biasa dengan konsep tersebut, REPL memungkinkan untuk menjalankan potongan kod sewenang-wenangnya secara interaktif dan menilai hasilnya.
REPL boleh berguna untuk perkara-perkara seperti cepat memeriksa daya maju idea atau mencari contohnya rentetan yang diformat untuk String atau SimpleDateFormat .
2. Berlari
Untuk memulakan, kita perlu menjalankan REPL, yang dilakukan dengan memanggil:
$JAVA_HOME/bin/jshell
Sekiranya pesanan yang lebih terperinci dari cengkerang diinginkan, bendera -v dapat digunakan:
$JAVA_HOME/bin/jshell -v
Setelah siap, kita akan disambut dengan pesanan mesra dan permintaan gaya Unix yang biasa di bahagian bawah.
3. Kaedah Menentukan dan Memohon
Kaedah boleh ditambah dengan menaip tandatangan dan isi badan mereka:
jshell> void helloWorld() { System.out.println("Hello world");} | created method helloWorld()
Di sini kami menentukan kaedah "hello world" di mana-mana. Ia boleh dipanggil menggunakan sintaks Java biasa:
jshell> helloWorld() Hello world
4. Pemboleh ubah
Pemboleh ubah dapat ditentukan dengan sintaks deklarasi Java biasa:
jshell> int i = 0; i ==> 0 | created variable i : int jshell> String company = "Baeldung" company ==> "Baeldung" | created variable company : String jshell> Date date = new Date() date ==> Sun Feb 26 06:30:16 EST 2017 | created variable date : Date
Perhatikan bahawa titik koma adalah pilihan. Pemboleh ubah juga dapat dinyatakan tanpa inisialisasi:
jshell> File file file ==> null | created variable file : File
5. Ungkapan
Sebarang ungkapan Java yang sah diterima dan hasil penilaian akan ditunjukkan. Sekiranya tidak ada penerima hasil yang jelas, pemboleh ubah "calar" akan dibuat:
jshell> String.format("%d of bottles of beer", 100) $6 ==> "100 of bottles of beer" | created scratch variable $6 : String
REPL sangat berguna di sini dengan memberitahu kami bahawa ia mencipta pemboleh ubah calar bernama $ 6 yang nilainya adalah "100 botol bir di dinding" dan jenisnya adalah String .
Ungkapan berbilang baris juga boleh dilakukan. Jshell cukup pintar untuk mengetahui bila ungkapan tidak lengkap dan akan mendorong pengguna untuk meneruskan baris baru:
jshell> int i = ...> 5; i ==> 5 | modified variable i : int | update overwrote variable i : int
Perhatikan bagaimana arahan berubah menjadi lekukan …> untuk menandakan kelanjutan ekspresi.
6. Perintah
Jshell memberikan beberapa meta-perintah yang tidak berkaitan dengan penilaian pernyataan Java. Semuanya bermula dengan garis miring ke depan (/) untuk dibezakan dari operasi biasa. Sebagai contoh, kita boleh meminta senarai semua arahan yang tersedia dengan mengeluarkan / membantu atau / ?.
Mari kita lihat beberapa daripadanya.
6.1. Import
Untuk menyenaraikan semua import yang aktif pada sesi semasa, kita dapat menggunakan perintah / import :
jshell> /import | 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.*
Seperti yang kita lihat, shell bermula dengan beberapa import berguna yang sudah ditambah.
6.2. Senarai
Bekerja dalam REPL tidak semudah memiliki IDE yang lengkap di hujung jari kita: mudah untuk melupakan pemboleh ubah yang mempunyai nilai, kaedah apa yang telah ditentukan dan sebagainya. Untuk memeriksa keadaan shell kita boleh menggunakan / var , / method , / list atau / history:
jshell> /var | int i = 0 | String company = "Baeldung" | Date date = Sun Feb 26 06:30:16 EST 2017 | File file = null | String $6 = "100 of bottles of beer on the wall" jshell> /methods | void helloWorld() jshell> /list 1 : void helloWorld() { System.out.println("Hello world");} 2 : int i = 0; 3 : String company = "Baeldung"; 4 : Date date = new Date(); 5 : File file; 6 : String.format("%d of bottles of beer on the wall", 100) jshell> /history void helloWorld() { System.out.println("Hello world");} int i = 0; String company = "Baeldung" Date date = new Date() File file String.format("%d of bottles of beer on the wall", 100) /var /methods /list /history
Perbezaan antara / senarai dan / sejarah adalah bahawa yang terakhir menunjukkan perintah selain ungkapan.
6.3. Menyimpan
Untuk menyimpan sejarah ekspresi, perintah / simpan boleh digunakan:
jshell> /save repl.java
Ini menyimpan sejarah ekspresi kita ke dalam repl.java dalam direktori yang sama dari mana kita menjalankan perintah jshell .
6.4. Memuatkan
Untuk memuatkan fail yang disimpan sebelumnya, kita dapat menggunakan perintah / buka :
jshell> /open repl.java
Sesi yang dimuat kemudian dapat disahkan dengan mengeluarkan / var , / method atau / list .
6.5. Keluar
Apabila kita selesai dengan kerja, perintah / exit dapat menghentikan shell:
jshell> /exit | Goodbye
Selamat tinggal jshell .
7. Kesimpulannya
Dalam artikel ini, kami melihat Java 9 REPL. Memandangkan Java sudah ada selama lebih dari 20 tahun, mungkin ia tiba agak lewat. Namun, ia harus terbukti menjadi alat berharga lain di kotak alat Java kami.