Blok teks direncanakan untuk rilis di Jawa 13. Ini diumumkan pada
JEP 355 .
Blok teks adalah string multi-baris literal yang menghilangkan kebutuhan untuk keluar dari sebagian besar karakter khusus dan secara otomatis membuat jeda baris.
Ini adalah upaya lebih lanjut pada studi yang dimulai pada JEP 326 (literal string yang tidak diproses dipanggil kembali).

Jep 355 gol
- Sederhanakan menulis kode Java dengan menghindari urutan melarikan diri.
- Meningkatkan keterbacaan kode.
Apa yang JEP 355 jelas tidak coba capai
- Ini bukan upaya untuk mendefinisikan jenis referensi baru, seperti
java.lang.String
. - Ini bukan upaya untuk menimpa operator string "+".
- Blok teks tidak mendukung interpolasi baris. Fitur ini dapat ditambahkan dalam JEP berikutnya.
Motivasi
Di Jawa untuk menyematkan XML, HTML, JSON, dll. pengeditan yang signifikan dengan perisai dan rangkaian string biasanya diperlukan. Sebuah fragmen seringkali sulit dibaca dan sulit dipertahankan.
Dengan demikian, JEP baru meningkatkan keterbacaan dan menambah kemampuan untuk menulis kelas luas program Java - menggunakan baris yang terdiri dari beberapa "baris" dan tanpa kekacauan visual. karakter. Sebenarnya, ini adalah blok teks dua dimensi, bukan urutan karakter satu dimensi.
Sintaks dan Deskripsi
Blok garis dibingkai oleh
"""
dan
"""
kanan dan kiri. Konten blok dimulai dengan karakter pertama setelah
"""
dan berakhir dengan karakter terakhir sebelum
"""
. Kutipan rangkap tiga dipilih sehingga jelas bahwa ini adalah baris teks, tetapi sehingga Anda dapat membedakannya dari string literal biasa (
"..."
).
Blok dapat berisi tanda kutip (
"
) secara langsung, tanpa garis miring (
\
). Anda juga dapat menggunakan
\"
, tetapi ini tidak disarankan.
Pembungkus garis dilakukan secara otomatis. Penggunaan \ n diizinkan tetapi tidak disarankan.
""" line 1 line 2 line 3 """
sama halnya
"line 1\nline 2\nline 3\n"
atau
"line 1\n" + "line 2\n" + "line 3\n"
Berikut adalah contoh blok teks kosong:
String empty = """ """;
Berikut adalah praktik buruk menggunakan blok teks:
String a = """"""; String b = """ """; String c = """ "; String d = """ abc \ def """;
Keluar urutan dalam blok teks
Escape sequence ditafsirkan. Ini berarti bahwa pengembang dapat menulis urutan pelarian, misalnya,
\n
di dalam blok.
Contohnya
HTML
String html = """ <html> <body> <p>Hello, world</p> </body> </html> """;
Cara lama String html = "<html>\n" + " <body>\n" + " <p>Hello, world</p>\n" + " </body>\n" + "</html>\n";
SQL
String query = """ SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB` WHERE `CITY` = 'INDIANAPOLIS' ORDER BY `EMP_ID`, `LAST_NAME`; """;
Cara lama String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" + "WHERE `CITY` = 'INDIANAPOLIS'\n" + "ORDER BY `EMP_ID`, `LAST_NAME`;\n";
Skrip
ScriptEngine engine = new ScriptEngineManager().getEngineByName("js"); Object obj = engine.eval(""" function hello() { print('"Hello, world"'); } hello(); """);
Cara lama ScriptEngine engine = new ScriptEngineManager().getEngineByName("js"); Object obj = engine.eval("function hello() {\n" + " print('\"Hello, world\"');\n" + "}\n" + "\n" + "hello();\n");