[英]Flex Null Integer
我通過AMF(BlazeDS)將數據從Java傳遞到Flex
在java方面,對象有Integer字段。 所以它可以為null。
在Flex中,對象是int。 因此空值反序列化為0。
這不是我想要的,我想看看它是0還是null。
Flex中是否存在類似(Java中的Integer)的包裝器? 謝謝
據我所知,沒有這樣的包裝。 如果構造函數的參數為null
,您可以編寫一個將NaN
分配給內部int
的程序
我們通過創建一個覆蓋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); }
Amarghosh有正確的答案,但是當你繼續完成你的項目時,你會發現當你應用“一切都是字符串”規則時,amf世界的生活會變得如此簡單。 從長遠來看,這個建議可能會有很大幫助。
祝你好運,傑里米
正如Amarghosh回答的那樣,沒有這樣的包裝。 作為一種解決方法,我們檢查-1的int值,它等於我們域中的未分配的int值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.