私は、Javaの関数を呼び出すには、char[]
入力パラメータをOracleのnashorn JavaScriptエンジン(非配列パラメータ型の関数は私にとってはうまく動作します)から呼び出したいとします。nashorn(JDK 8 JavaScriptエンジン)からchar []入力パラメータを受け取るJava関数を呼び出す?
私はあなたが私にはJavaScript/nashornからJavaで実装されたSAX 1のDocumentHandlerを起動しようとして見ることができるように
javax.script.ScriptException: TypeError: Can not invoke method
[jdk.internal.dynalink.beans.SimpleDynamicMethod
void org.xml.sax.DocumentHandler.characters(char [],int,int)]
with the passed arguments; they do not match any of its
method signatures.
をbalks nashornリテラルJavaScriptの文字列、とJavaの関数を呼び出す場合、およびコースの私はintパラメータも提供しています。
// laboriously converting a string into a Java char array
var text = "bla"
var charArrayType = Java.type("char[]")
var charArray = new charArrayType(text.length)
for (var i = 0; i < text.length; i++)
charArray[i] = text.charAt(i)
をしかし、私は今、Java関数を呼び出す場合は、パラメータとしてcharArray
を使用して:
はhttp://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/とhttp://docs.oracle.com/javase/8/docs/technotes/guides/scripting/nashorn/api.htmlから私はそれは私が次のようなコードを使用する必要がありますJavaのchar[]
配列にJavaScriptの文字列を変換するために取得します、私はまだ上記のエラーメッセージが表示されます。
何のchar []に付属している2つのint型の入力についてはどうですか?あなたは明らかにchar []だけを送信してDocumentHandler.characters(char []、int、int)を呼び出そうとしていますか? – Assafs
あなたの2番目のスニペットは私には役立ちますが、javascriptのchar配列を渡すこともできます。 –
@Assafsあなたは正しいです。受け入れられた答えへの私のコメントを参照してください – imhotap