Cet article étudie principalement le contenu connexe de la programmation Java Nashorn, comme suit.
Qu'est-ce que Nashorn
Nashorn, prononcé "nass-horn", est le nom d'un réservoir en Allemagne pendant la Seconde Guerre mondiale. Il s'agit également de la nouvelle génération de moteur JavaScript pour Java8 - remplaçant l'ancien et lent rhinocéros et se conformant aux spécifications de la langue ECMAScript-262 version 5.1. Vous voudrez peut-être que JavaScript s'exécute dans un navigateur Web et fournit diverses opérations DOM sur HTML, mais Nashorn ne prend pas en charge les objets DOM du navigateur. C'est un point qui a besoin d'attention.
J'ai écrit un exemple simple lorsque j'apprenais Java 8, donc je vais l'enregistrer ici.
Répertoire de fichiers:
StringFunction.java Code source:
classe publique 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 (); }}StringNashorn.java Code source:
classe publique StringNashorn {/ ** * Nashorn Script Engine * / private scriptengine nashorn = new ScriptenMineManager (). getEngineByName ("nashorn"); / ** * EXECUTER SCRIPT * / public objet EXECUTE (String Script) {scriptContext scriptContext = new SimplescriptContext (); // Définissez une fonction nommée StringFunction, qui correspond en fait à un objet StringFunction ScriptContext.SetAttribute ("StringFunction", new StringFunction (), 100); nashorn.setContext (scriptContext); Résultat de l'objet = null; try {result = nashorn.eval (script); } catch (scriptexception e) {e.printStackTrace (); } Retour Résultat; }}Nashorntest.java Code source:
classe publique NashorNTest {public static void main (String [] args) {String substring = "stringFunction.sub (/" abcdefghijk / ", 1, 4);"; String APPEND = "StringFunction.APPEND (/" ABC / ", /" DEF / ");"; StringNashorn nashorn = new StringNashorn (); Object Subresult = Nashorn.Exécute (sous-chaîne); Objet appendRaSult = nashorn.excute (append); System.out.println (subresult.ToString ()); System.out.println (appendResult.ToString ()); }}Exécutez la méthode principale, le résultat est:
BCD
abcdef
Ici, si nashorntest.java est réécrit comme suit:
classe publique NashorNTest {public static void main (String [] args) {// Utilisez des objets pour recevoir les résultats dans le script et imprimez la chaîne substring = "var s1 = stringFunction.sub (/" abcdefghijk / ", 1, 4);" + "Print (S1);"; String APPEND = "var S2 = stringFunction.APPEND (/" ABC / ", /" DEF / ");" + "Print (S2);"; StringNashorn nashorn = new StringNashorn (); // Ici, l'exécution ne renvoie plus l'objet car il y a déjà des objets dans le script recevant les résultats d'exécution de Sub et APPEND. Nashorn.Exécute (sous-chaîne); nashorn.execute (append); }}Le même résultat sera également sorti.
Résumer
Ce qui précède est tout au sujet du code de la programmation Java Nashorn Instance, j'espère que cela sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!