【发布时间】:2013-03-09 20:15:30
【问题描述】:
我正在尝试将 Rhino 嵌入 Java 中。我注意到,当我评估一个在 Javascript 中将两个整数相加的脚本时,结果以 Double 形式返回。
ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
engine.put("x", 3);
engine.put("y", 4);
assertEquals(3, engine.eval("x")); // OK
assertEquals(4, engine.eval("y")); // OK
assertEquals(7, engine.eval("x + y")); // FAILS, actual = (Double) 7.0
那么为什么x + y 表达式返回一个double 而不是一个int?
Javascript 本身是否在做一些我不理解的类型提升?
【问题讨论】:
标签: java javascript rhino