我使用BlazeDS將Java對象編組爲Flex。我所看到的是,如果Java Float
擁有一個整數值(整數,如123),那麼它將被編組爲ActionScript int
。我期望Java Float
總是被編組爲ActionScript Number
,編號爲documented in the BlazeDS Developer Guide。BlazeDS marshalls Java Float to ActionScript int
有沒有辦法配置這個,或者這只是一個BlazeDS的錯誤?
後續行動:浮動包含在地圖中。正在傳遞到BlazeDS的Java的地圖看起來類似:
Map map = new HashMap();
Float f = 123.0;
map.put("number", f);
當它到達在Flex端map
是Object
:
var map:Object = ...
trace(map.number);
trace(getQualifiedClassName(map.number));
打印:
123
int
所以這正確地序列化值,就像錯誤的類型一樣。
你可以在Flex端顯示代碼嗎?您是使用RemoteAlias還是僅使用動態對象? –
動態對象,請參閱上文。 –
我相信默認情況下,如果你沒有在Flex端指定一個值對象,它會嘗試使用盡可能最低的值(在這種情況下爲int)作爲你的類型。 –