【发布时间】:2011-09-05 00:23:05
【问题描述】:
我在 Rhino 中使用 javax.scripting 在这个项目中。
我有一个返回 Java 对象的 Java 方法(Double、Long、 整数等)。我想从 javascript 调用该方法和 将结果引用为 Javascript 原始类型。然而, javacript 将返回类型识别为 Object。
如何强制它转换为 javascript 原语?
问题是我如何获得对上下文的引用和 包装工厂?
示例代码:
public class data
{
Double value = 1.0d;
public Number get() { return value; }
}
public static void main(String[] args)
{
ScriptEngine engine = new ScriptEngineManager().getEngineByName ("rhino");
data data = new data();
try
{
engine.eval("function test(data) { return data.getD('value1') + 5;};");
System.out.println("Result:" + ((Invocable)engine).invokeFunction("test", data));
}
catch (Exception e)
{
e.printStackTrace();
}
}
输出: 结果:15
【问题讨论】:
标签: java javascript rhino