我尝试使用数组创建一个函数作为返回值。但是,它没有用。
你对此有任何想法吗?
以下是我的代码。
@JSFunction
public double[] getLocation() {
double[] array = {253.1, 152.0, -32.5};
return array;
}
答案 0 :(得分:0)
检查以下示例中的数组。
import java.lang.reflect.InvocationTargetException;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.ScriptableObject;
import org.mozilla.javascript.annotations.JSFunction;
public class Main {
public static void main(String[] args) {
Context cx = Context.enter();
System.out.println("Started : " + ArrayTest.class.getSimpleName());
try {
Scriptable scope = cx.initStandardObjects();
ScriptableObject.defineClass(scope, ArrayTest.class);
String testCode = "new ArrayTest().getLocation().join(',');";
Object result = cx.evaluateString(scope, testCode, "<cmd>", 1, null);
System.err.println(Context.toString(result));
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} finally {
Context.exit();
}
}
public static class ArrayTest extends ScriptableObject {
@JSFunction
public double[] getLocation() {
double[] array = {253.1, 152.0, -32.5};
return array;
}
@Override
public String getClassName() {
return getClass().getSimpleName();
}
}
}
<强>输出强>
Started : ArrayTest
253.1,152,-32.5