0

我使用 java 来评估一个 javascript 文件。这是使用 java.lang.String.format 并应传递一个整数,但我得到“java.util.IllegalFormatConversionException:d!= java.lang.Double”的异常。我传递的值似乎被转换为双倍。

javascript:

java.lang.String.format("%02d", 1 );

如何强制传递的变量类型为 int?

4

1 回答 1

0

显式传递Integer

new ScriptEngineManager().getEngineByName("JavaScript")
    .eval("java.lang.System.out.format('%d', new java.lang.Integer(1));");

JavaScriptNumber类型等价于 JavaDouble类型。因为格式采用Object类型,所以方法签名没有足够的元数据来告诉脚本引擎将类型强制转换为Integer.

于 2013-05-30T10:44:47.473 回答