Путаница в преобразовании типа Насорна между Integer и Double - PullRequest
2 голосов
/ 11 апреля 2019

Если следующая программа работает под 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 меняет тип, когда он назначается переменной, по сравнению с тем, когда он используется напрямую?

...