2014-09-03 139 views
2

我有一個js文件如下:如何從java中的javascript調用返回數組?

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中定義數組?

+0

你這樣定義的數組:'返回[]'。 – 2014-09-03 21:48:05

+0

@tieTY在JavaScript?那麼這是什麼:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays – 2014-09-03 21:48:56

+0

嗯,我有一種感覺,你的JavaScript引擎根本不支持它。你在使用哪種引擎? – 2014-09-03 21:50:45

回答

0

您的運行時間不支持類型化數組的外觀。試試這個:

function serialize() { 
    return []; 
} 

,或者如果它需要1024的長度產生所述長度的空數組像這樣反而

function serialize() { 
    return new Array(1024); 
} 
相關問題