gpt4 book ai didi

java - 在java中捕获javascript返回值

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:16:26 25 4
gpt4 key购买 nike

通过使用 Java Sripting API,我能够在 Java 中执行 JavaScript。但是,有人可以解释一下如何在 Java 中捕获 JS 的返回值吗?在下面的示例中,我可以使用

调用 script2
inv.invokeFunction("getValue", "Number", "2);

如何从 script2 获取返回值?

import javax.script.*;

public class InvokeScriptFunction {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");

// JavaScript code in a String
String script1 = "function hello(name) {print ('Hello, ' + name);}";
String script2 = "function getValue(a,b) { if (a==="Number") return 1;
else return b;}";
// evaluate script
engine.eval(script1);
engine.eval(script2);

Invocable inv = (Invocable) engine;

inv.invokeFunction("hello", "Scripting!!" ); //This one works.
}
}

最佳答案

这就是您将如何获得该返回值。

String returnValue = (String)inv.invokeFunction("hello", "Scripting!!" );

与脚本 2 相同,只需相应地更改调用即可。

The invokeFuntion method from Invocable returns an Object. So, we must type-cast it to the appropriate type before using it.

Reference

关于java - 在java中捕获javascript返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19626783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com