我想从Oracle的nashorn JavaScript引擎中调用一个带有 char[] 输入参数的Java函数(非数组参数类型的函数对我来说没问题) .
如果我用JavaScript字符串文字调用Java函数,nashorn balks
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.
正如您所看到的,我正在尝试从JavaScript / nashorn调用用Java实现的SAX 1 DocumentHandler,当然我也提供了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)
但是,如果我现在使用 charArray 作为参数调用Java函数,我仍然会收到上述错误消息 .