从Javascript调用Java并传递整数

从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来评估javascript文件。这是使用java.lang.String.format并将传递一个整数,但我得到了“java.util.IllegalFormatConversionException:d!=java.lang.Double”的异常。我传递的值似乎已转换为双精度值

javascript:

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
类型相当于Java
Double
类型。由于格式采用
对象
类型,因此方法签名没有足够的元数据来告诉脚本引擎将类型强制为
整数

尝试以下操作:int myInt=Integer.parseInt(String.valueOf(“1”);我想使用String.format函数进行更多格式化。我发现“java.lang.String.format(“%02d”,新的java.lang.Integer(1));”是有效的。