我從AMF的數據從Java到Flex(BlazeDS)Flex空整數
在java的side對象中有Integer字段。所以它可以是空的。
在Flex端對象是int。所以空值被反序列化爲0.
這不是我想要的,我想看看它是0還是null。
Flex中是否有類似於(Integer in Java)的包裝? 謝謝
我從AMF的數據從Java到Flex(BlazeDS)Flex空整數
在java的side對象中有Integer字段。所以它可以是空的。
在Flex端對象是int。所以空值被反序列化爲0.
這不是我想要的,我想看看它是0還是null。
Flex中是否有類似於(Integer in Java)的包裝? 謝謝
據我所知,沒有這樣的包裝。你可以寫一個分配NaN
到內部int
如果參數的構造函數是null
由於Amarghosh回答,有沒有這樣的包裝。作爲一種解決方法,我們檢查int值爲-1,它等於我們域中未分配的int值。
Amarghosh有正確的答案,但是當你繼續完成項目時,當你應用「一切都是一個字符串」規則時,你會發現在amf世界中生活更容易。從長遠來看,這個建議可能會有很大幫助。
祝你好運, 傑里米
我們通過創建覆蓋的setValue和getValue一個BeanProxy類解決了這個。在那裏,如果值是一個Number和null,那麼我們將NaN返回到Flex一側,如果它是Double和NaN,則返回null到Java端。工作完成:
@Override public void setValue(Object instance, String propertyName, Object value) { if ((value instanceof Double)) { Double doubleValue = (Double) value; if (doubleValue != null && doubleValue.isNaN()) { super.setValue(instance, propertyName, null); } }else{ super.setValue(instance, propertyName, value); } } @Override public Object getValue(Object obj, String propertyName) { final Class classType = super.getType(obj, propertyName); if (isNumber(classType) && super.getValue(obj, propertyName) == null) { return Double.NaN; } return super.getValue(obj, propertyName); }
「一切都是字符串」,然後HTTP服務與XML將更乾淨的解決方案。如果一切都是字符串,爲什麼我會使用AMF? – javanes 2010-03-09 07:46:16
即使通過amf序列化您的XML數據比httpservice調用+ xml快大約5倍(根據我們的測試)。而我們70%的用戶在美國,30%的用戶在德國,巴西和中國。我參與過的每個主要的flex項目都至少有一位架構師將最簡單的數據類型,特別是日期作爲字符串處理。大多數語言都存在actionscrip所具有的問題 - 您可以追蹤(8244.094488188976)並在控制檯中獲取其他編號。將該數字視爲字符串可以保證數據的完整性。 – 2010-03-09 16:41:45
http://stackoverflow.com/questions/2100228/simple-calculation-problem-with-flex – 2010-03-09 16:42:30