我試圖把所有的Java方法從JavaScript腳本訪問。Java可變參數和犀牛
正如我想要的「捷徑」,我遵循以下指南:https://stackoverflow.com/a/19197130/2897090。但是,當我的Java方法具有可變參數時,我無法「公開」使用javascript語言的方法。
public void printf(String format, Object... args) {
out.printf(format, args);
}
//Gives org.mozilla.javascript.EvaluatorException: Unsupported parameter type "[Ljava.lang.Object;" in method printf
其他的事情:
如果我儘量讓JavaScript的 「一「只用快捷方式printf
」:
function printf(format){
java.lang.System.out.printf(format, arguments);
}
如果我輸入任何內容,我得到[email protected]
如何解決是什麼?
謝謝。
更新
由於我沒有找到任何解決方案,我改變了方法:現在我只使用ScriptEngine。實際上我正在做的是暴露整個對象(不僅僅是函數)。不幸的是,每次我需要調用一個函數時,我需要用我公開的對象的名稱作爲前綴。
無論如何,我可以用可變參數創建我的Java方法,並在JavaScript端不做任何修改的情況下使用它們。