2013-05-30 50 views
0

我使用java來評估JavaScript文件。這是使用java.lang.String.format並傳遞一個整數,但我得到了「java.util.IllegalFormatConversionException:d!= java.lang.Double」的異常。我通過的價值似乎轉化爲雙倍。從Javascript調用Java並傳遞整數

的javascript:

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

我怎麼能強制執行,傳遞的變量類型爲int?

+0

試試這個:int myInt = Integer.parseInt(String.valueOf(「1」)); – kodmanyagha

+0

我想使用String.format函數來進行更多的格式化。我想通過「java.lang.String.format(」%02d「,new java.lang.Integer(1));」作品。 – fbenoit

回答

0

傳遞一個明確Integer

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

中的JavaScript Number類型等同於Java的Double類型。因爲該格式需要Object類型,所以方法簽名沒有足夠的元數據來通知腳本引擎將該類型強制爲Integer

相關問題