Este artigo estuda principalmente o conteúdo relacionado da programação Java Nashorn, como segue.
O que é Nashorn
Nashorn, pronunciado "Nass-Horn", é o nome de um tanque na Alemanha durante a Segunda Guerra Mundial. É também a nova geração de mecanismo JavaScript para Java8 - substituindo o rinoceronte antigo e lento e cumprindo as especificações do idioma do ECMAScript -262 versão 5.1. Você pode querer que o JavaScript seja executado em um navegador da web e forneça várias operações DOM no HTML, mas Nashorn não suporta objetos do navegador DOM. Este é um ponto que precisa de atenção.
Por acaso, escrevi um exemplo simples quando estava aprendendo o Java 8, então vou gravar aqui.
Diretório de arquivos:
StringFunction.java Código fonte:
classe pública 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 -> resultado.append (str)); return resultado.toString (); }}Stringnashorn.java Código fonte:
classe pública Stringnashorn { / *** Nashorn Script Engine* / Private ScriptEngine Nashorn = new ScriptEngineManager (). GetEngineByName ("Nashorn"); / *** Execute script*/ public Object Execute (string script) {scriptContext scriptContext = new SimpleScriptContext (); // Defina uma função chamada StringFunction, que realmente corresponde a um objeto StringFunction scriptContext.SetAttribute ("StringFunction", new StringFunction (), 100); Nashorn.setContext (scriptContext); Resultado do objeto = nulo; tente {resultado = Nashorn.eval (script); } catch (scriptexception e) {e.printStackTrace (); } resultado de retorno; }}Nashorntest.java Código fonte:
classe 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 (); Subresult de objeto = Nashorn.execute (substring); Objeto appendResult = Nashorn.execute (Append); System.out.println (Subresult.toString ()); System.out.println (appendResult.toString ()); }}Execute o método principal, o resultado é:
BCD
ABCDEF
Aqui, se Nashorntest.java for reescrito da seguinte forma:
classe pública nashorntest {public static void main (string [] args) {// use objetos para receber os resultados no script e imprimir string substring = "var s1 = stringfunction.sub (/" abcdefghijk/", 1, 4); + "print (s1);"; String append = "var s2 = stringfunction.append (/" abc/",/" def/");" + "print (s2);"; Stringnashorn Nashorn = new Stringnashorn (); // Aqui é executado mais não retorna o objeto porque já existem objetos no script que recebem os resultados da execução de sub e anexos. Nashorn.execute (substring); Nashorn.Execute (Apêndos); }}O mesmo resultado também será emitido.
Resumir
O exposto acima é tudo sobre o código de programação Java Nashorn, espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!