簡體   English   中英

Flex Null Integer

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM