我在js文件中包含以下内容:

function serialize() {
return new Uint8Array(1024);
}


我使用Java脚本API调用该函数,如下所示:

byte[] bytes = (byte[]) ((Invocable)engine).invokeFunction(SERIALIZE_FUNC);


立即引发异常:

javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "Uint8Array" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1
sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "Uint8Array" is not defined. (<Unknown source>#1)


我对javascript不太了解,但是我认为这是您如何在JavaScript中定义数组?

最佳答案

从外观上看,您的运行时不支持类型数组。尝试以下方法:

function serialize() {
    return [];
}


或者如果它的长度需要为1024,则创建一个具有上述长度的空数组,而不是这样

function serialize() {
    return new Array(1024);
}

10-01 05:49