Nashorn类型转换在Integer和Double之间的困惑

时间:2019-04-11 12:20:13

标签: java java-8 java-11 nashorn

如果以下程序在JDK 11下运行:

ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
System.out.println(engine.eval("var result = java.lang.Integer.valueOf(1) + 1; result").getClass());
System.out.println(engine.eval("java.lang.Integer.valueOf(1) + 1").getClass());

结果将是:

  

java.lang.Integer类

     

java.lang.Double类

但是在JDK8下:

  

java.lang.Double类

     

java.lang.Double类

与直接使用变量相比,为什么Nashorn在将变量分配给变量时会更改类型?

0 个答案:

没有答案