从Javascript调用Java并传递整数
我使用java来评估javascript文件。这是使用java.lang.String.format并将传递一个整数,但我得到了“java.util.IllegalFormatConversionException:d!=java.lang.Double”的异常。我传递的值似乎已转换为双精度值 javascript:从Javascript调用Java并传递整数,java,javascript,Java,Javascript,我使用java来评估javascript文件。这是使用java.lang.String.format并将传递一个整数,但我得到了“java.util.IllegalFormatConversionException:d!=java.lang.Double”的异常。我传递的值似乎已转换为双精度值 javascript: java.lang.String.format("%02d", 1 ); 如何强制传递的变量类型为int?显式传递一个整数: new ScriptEngineManager().
java.lang.String.format("%02d", 1 );
如何强制传递的变量类型为int?显式传递一个
整数
:
new ScriptEngineManager().getEngineByName("JavaScript")
.eval("java.lang.System.out.format('%d', new java.lang.Integer(1));");
JavaScript
Number
类型相当于JavaDouble
类型。由于格式采用对象
类型,因此方法签名没有足够的元数据来告诉脚本引擎将类型强制为整数
尝试以下操作:int myInt=Integer.parseInt(String.valueOf(“1”);我想使用String.format函数进行更多格式化。我发现“java.lang.String.format(“%02d”,新的java.lang.Integer(1));”是有效的。