Este artículo estudia principalmente el contenido relacionado de la programación de Java Nashorn, como sigue.
Que es nashorn
Nashorn, pronunciado "Nass-Horn", es el nombre de un tanque en Alemania durante la Segunda Guerra Mundial. También es la nueva generación de motor JavaScript para Java8, que reemplaza el rinoceronte antiguo y lento, y cumple con las especificaciones del lenguaje ECMAScript -262 versión 5.1. Es posible que desee que JavaScript se ejecute en un navegador web y proporcione varias operaciones DOM en HTML, pero Nashorn no admite objetos DOM del navegador. Este es un punto que necesita atención.
Escribí un ejemplo simple cuando estaba aprendiendo Java 8, así que lo grabaré aquí.
Directorio de archivos:
Código fuente de StringFunction.Java:
public class StringFunction { / ** * String Intercept * / public String Sub (String Str, int Start, int End) {return str.substring (inicio, final); } / *** String Splicing* / public String Append (String ... Strs) {StringBuilder result = new StringBuilder (Strs [0]); Stream.of (strs) .skip (1) .ForEach (str -> resultado.append (str)); return result.toString (); }}Código fuente de StringNashorn.Java:
public class StringNashorn { / *** Nashorn Script Engine* / Private ScriptEngine nashorn = new ScriptenGinemanager (). GetEngineByName ("Nashorn"); / *** Ejecutar script*/ public object Execute (String script) {scriptContext scriptContext = new SimplePleScriptContext (); // Definir una función llamada StringFunction, que en realidad corresponde a un objeto StringFunction scriptContext.setAttribute ("StringFunction", new StringFunction (), 100); nashorn.setContext (scriptContext); Resultado del objeto = nulo; intente {result = nashorn.eval (script); } catch (ScriptException e) {E.PrintStackTrace (); } resultado de retorno; }}NashornTest.Java Código fuente:
clase pública nashornTest {public static void main (string [] args) {String substring = "StringFunction.sub (/" ABCDefghijk/", 1, 4);"; String append = "stringFunction.append (/" abc/",/" def/");"; StringNashorn nashorn = new StringNashorn (); Objeto subresult = nashorn.execute (subcadena); Objeto appendresult = nashorn.execute (append); System.out.println (subResult.ToString ()); System.out.println (appendResult.ToString ()); }}Ejecute el método principal, el resultado es:
BCD
abcdef
Aquí, si nashorntest.java se reescribe de la siguiente manera:
Clase pública NashornTest {public static void main (String [] args) {// Use objetos para recibir los resultados en el script e imprimir string substring = "var s1 = stringfunction.sub (/" abcdefghijk/", 1, 4);" + "imprimir (S1);"; String append = "var s2 = stringFunction.append (/" abc/",/" def/");" + "imprimir (s2);"; StringNashorn nashorn = new StringNashorn (); // aquí ejecutar ya no devuelve el objeto porque ya hay objetos en el script que reciben los resultados de ejecución de SUB y APCED. nashorn.execute (subcadena); nashorn.execute (append); }}El mismo resultado también se emitirá.
Resumir
Lo anterior se trata del código de programación de Java Nashorn Instance, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!