Artikel ini terutama mempelajari konten terkait pemrograman Java Nashorn, sebagai berikut.
Apa itu Nashorn
Nashorn, diucapkan "nass-horn", adalah nama tank di Jerman selama Perang Dunia II. Ini juga merupakan generasi baru mesin JavaScript untuk Java8 - menggantikan badak lama dan lambat, dan mematuhi spesifikasi bahasa ECMASCRIPT -262 versi 5.1. Anda mungkin ingin JavaScript berjalan di browser web dan menyediakan berbagai operasi DOM pada HTML, tetapi Nashorn tidak mendukung objek DOM browser. Ini adalah titik yang membutuhkan perhatian.
Saya kebetulan menulis contoh sederhana ketika saya belajar Java 8, jadi saya akan merekamnya di sini.
Direktori File:
Kode Sumber StringFunction.java:
Public Class StringFunction { / ** * String Intercept * / Public String Sub (String str, int start, int end) {return str.substring (start, end); } / *** string splicing* / public string append (string ... strs) {stringBuilder result = new stringBuilder (strs [0]); Stream.of (strs) .skip (1) .foreach (str -> result.append (str)); return result.toString (); }}Kode Sumber StringNashorn.java:
Public Class StringNashorn { / *** Nashorn Script Engine* / Private ScriptEngine nashorn = new ScriptEngineManager (). getenginebyname ("nashorn"); / *** Eksekusi skrip*/ objek publik Execute (String Script) {ScriptContext ScriptContext = new SimpleScriptContext (); // Tentukan fungsi bernama StringFunction, yang sebenarnya sesuai dengan scriptFunction objek ScriptContext.setAttribute ("StringFunction", New StringFunction (), 100); nashorn.setContext (ScriptContext); Hasil Objek = NULL; coba {hasil = nashorn.eval (skrip); } catch (ScriptException e) {E.PrintStackTrace (); } hasil pengembalian; }}Nashorntest.java kode sumber:
kelas publik nashorntest {public static void main (string [] args) {string substring = "stringfunction.sub (/" abcdefghijk/", 1, 4);"; String append = "StringFunction.append (/" ABC/",/" DEF/");"; StringNashorn nashorn = new StringNashorn (); Objek subResult = nashorn.execute (substring); Objek appendResult = nashorn.execute (append); System.out.println (SubResult.ToString ()); System.out.println (appendResult.toString ()); }}Jalankan metode utamanya, hasilnya adalah:
BCD
abcdef
Di sini, jika nashorntest.java ditulis ulang sebagai berikut:
Public Class NashornTest {public static void main (string [] args) {// Gunakan objek untuk menerima hasil dalam skrip dan cetak string substring = "var s1 = stringfunction.sub (/" abcdefghijk/", 1, 4);" + "Cetak (S1);"; String append = "var s2 = stringfunction.append (/" abc/",/" def/");" + "cetak (s2);"; StringNashorn nashorn = new StringNashorn (); // Di sini mengeksekusi tidak lagi mengembalikan objek karena sudah ada objek dalam skrip yang menerima hasil eksekusi sub dan ditambahkan. nashorn.execute (substring); nashorn.execute (append); }}Hasil yang sama juga akan menjadi output.
Meringkaskan
Di atas adalah semua tentang kode Java Programming Nashorn, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!