我们通过创建一个覆盖 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);
}