この記事は、主に、次のようにJavaプログラミングナショーンの関連コンテンツを研究しています。
ナショーンとは何ですか
「ナスホーン」と発音されるナショーンは、第二次世界大戦中のドイツの戦車の名前です。また、Java8用のJavaScriptエンジンの新世代 - 古いRhinoとSlow Rhinoを置き換え、ECMAScript -262バージョン5.1言語仕様に準拠しています。 JavaScriptをWebブラウザーで実行し、HTMLでさまざまなDOM操作を提供することを望むかもしれませんが、NashornはブラウザDOMオブジェクトをサポートしていません。これは注意が必要なポイントです。
Java 8を学んでいたときに簡単な例を書いたので、ここで録音します。
ファイルディレクトリ:
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(); }}stringnashorn.javaソースコード:
パブリッククラスStringNashorn { / *** Nashorn Script Engine* / Private ScriptEngine Nashorn = new ScriptEngineManager()。getEngineByName( "Nashorn"); / *** Scriptを実行*/ public Object execute(string script){scriptcontext scriptcontext = new simplescriptContext(); // StringFunctionという名前の関数を定義します。これは、実際にStringFunction Object scriptContext.setTribute( "StringFunction"、new StringFunction()、100)に対応します。 nashorn.setContext(scriptContext);オブジェクト結果= null; try {result = nashorn.eval(script); } catch(scriptexception e){e.printstacktrace(); } return result; }}nashorntest.javaソースコード:
public class nashorntest {public static void main(string [] args){string substring = "stringfunction.sub(/" abcdefghijk/"、1、4);";文字列append = "stringfunction.append(/" abc/"、/" def/");"; Stringnashorn nashorn = new StringNashorn(); Object subsult = nashorn.execute(substring);オブジェクトappendResult = nashorn.execute(append); system.out.println(subresult.toString()); System.out.println(appendresult.toString()); }}主な方法を実行すると、結果は次のとおりです。
BCD
ABCDEF
ここで、nashorntest.javaが次のように書き換えられている場合:
public class nashorntest {public static void main(string [] args){//オブジェクトを使用して、スクリプトと印刷文字列substring = "var s1 = stringfunction.sub(/" abcdefghijk/"、1、4);" + "print(s1);";文字列append = "var s2 = stringfunction.append(/" abc/"、/" def/");" + "print(s2);"; Stringnashorn nashorn = new StringNashorn(); //ここで実行されます。スクリプトには、Subとappendの実行結果を受信するオブジェクトが既にあるためです。 nashorn.execute(substring); nashorn.execute(append); }}同じ結果も出力されます。
要約します
上記は、JavaプログラミングNashornインスタンスのコードに関するすべてです。すべての人に役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!