2

I take data from Java to Flex by AMF (BlazeDS)

In java side object has Integer field. So it can be null.

In Flex side object is int. So null values are deserialized as 0.

This is not what I want, I want to see whether it is 0 or null.

Is there wrapper like (Integer in Java) for Flex? Thanks

4

4 回答 4

4

据我所知,没有这样的包装。如果构造函数的参数是,您可以编写一个分配NaN给内部的intnull

于 2010-03-08T09:38:56.180 回答
3

我们通过创建一个覆盖 setValue 和 getValue 的 BeanProxy 类解决了这个问题。在那里,如果值是 Number 和 null,我们将 NaN 返回到 flex 端,如果它是 Double 和 NaN,我们将 null 返回到 Java 端。任务完成:

@覆盖
public void setValue(Object instance, String propertyName, Object value) {
    if ((value instanceof Double)) {
        Double doubleValue =(双)值;
        if (doubleValue != null && doubleValue.isNaN()) {
            super.setValue(instance, propertyName, null);
        }
    }别的{
          super.setValue(instance, propertyName, value);
        }
}

@覆盖
公共对象 getValue(对象 obj,字符串属性名称){
    最终类 classType = super.getType(obj, propertyName);
    if (isNumber(classType) && super.getValue(obj, propertyName) == null) {
        返回 Double.NaN;
    }
    返回 super.getValue(obj, propertyName);
}
于 2010-10-01T14:08:49.833 回答
1

Amarghosh 有正确的答案,但是当您继续完成您的项目时,您会发现当您应用“一切都是字符串”规则时,amf 世界的生活变得如此轻松。只是一个从长远来看可能会有很大帮助的建议。

祝你好运,杰里米

于 2010-03-08T18:31:21.187 回答
0

正如 Amarghosh 回答的那样,没有这样的包装。作为一种解决方法,我们检查 -1 的 int 值,它等于我们域中未分配的 int 值。

于 2010-03-08T12:23:18.490 回答