`
www-hello
  • 浏览: 100249 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ActionScript Number(NaN) —> java(null) NaN —> null

    博客分类:
  • flex
阅读更多

blazeds源码:

http://opensource.adobe.com/svn//opensource/blazeds/tags/4.0.0/modules/core/src/

 

http://flexblog.faratasystems.com/tag/blazeds

解决方法1,修改blazeds中的类NumberDecoder.java 和类NativeDecoder.java

附件中为已修改好的 Blazeds3.2d的包。

 

在Maven 中使用(spring-flex)框架,自动下载的 blazeds-core-3.2.0.3978.jar 同样也需要替换这两个类,附件中也提供了修改好的jar包,直接替换相应的文件夹中的jar包即可。

 

 

解决方法2:使用自定义类型编码器

package test.util.blazeds3;

import flex.messaging.io.amf.translator.ASTranslator;

public class NumberNaN2NullTypeMarshaller extends ASTranslator {

	@Override
	@SuppressWarnings("unchecked")
	public Object convert(Object source, Class desiredClass) {
		if (Number.class.isAssignableFrom(desiredClass)) {
			double doubleValue = ((Number) source).doubleValue();
			if (Double.isNaN(doubleValue)) {
				return null;
			}
		}
		return super.convert(source, desiredClass);
	}
}

 

修改配置文件services-config.xml

<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
    <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
    <properties>
        <serialization>
            <type-marshaller>test.util.blazeds3.NumberNaN2NullTypeMarshaller</type-marshaller>
        </serialization>
    </properties>
</channel-definition>

 

 

分享到:
评论

相关推荐

    Flash ActionScript 3 殿堂之路 笔记

    - Number:64位浮点数,默认值为NaN。 - String:字符串,默认值为null。 - uint:无符号32位整数,默认值为0,通常用于颜色表示。 复杂数据类型包括Array、Date、Error、Function、RegExp、XML、XMLList以及...

    殿堂之路完全笔记

    在数据类型的默认值中,未初始化的变量通常会得到特定类型的默认值,如int和uint为0,Number为NaN,字符串为null,布尔为false,数组和对象为null,未声明的变量为undefined。在编程过程中,为避免错误,应始终为...

    Flash_AS_3.0

    此外,Null、NaN和undefined是特殊的值,它们有特定的应用场景。例如,未定义的变量默认值为undefined,而null通常用于表示对象的值为空。 在运算符和表达式的运用中,`typeof`用于返回对象的类型,`is`和`as`则...

    AS3.0_AS3殿堂之路_笔记[七月经典]

    | Number | NaN | | String | null | | Boolean | false | | Array | null | | Object | null | | undefined| undefined | - **特殊值**: - **null**:表示空值。 - **NaN**:表示非数字。 - **undefined**:...

    As3殿堂之路学习笔记

    - **Null、NaN 和 undefined** 分别代表空值、非数字值和未定义值,它们在变量初始化时具有特定含义。 5. **运算符和表达式** - `typeof` 返回对象类型作为字符串。 - `is` 判断对象是否属于指定类型,返回 ...

    AS3.0殿堂之路_笔记

    Null、NaN(非数字)和undefined代表特定的未定义状态,使用时需谨慎,避免未声明变量导致错误。 2.5 运算符和表达式包括类型检查运算符(typeof、is、as),用于判断对象类型。例如,`typeof obj`返回对象类型,`...

    flashas3学习笔记

    - **2.4.3** 浮点型(`Number`),默认值为`NaN`。 - **2.4.4** 字符串(`String`),默认值为`null`。 - **2.4.5** 布尔型(`Boolean`),默认值为`false`。 - **2.4.6** 数组(`Array`),默认值为`null`。 - **...

    FLASH AS3自学要点

    每个数据类型的默认值不同,例如Boolean的默认值为false,int和uint的默认值为0,Number的默认值为NaN,Object和String的默认值为null,*型变量的默认值为undefined。 接下来,AS3中的数据类型分为两种主要类型:...

    Flex 编程技巧

    在处理数字时,可能会遇到NaN(Not a Number)的情况,这意味着数字是非法的。使用isNaN()函数可以检测变量是否为NaN。如果变量包含的是有效数字,使用!isNaN()函数将会返回true。 以上知识点覆盖了Flex编程中一些...

    [lesson2_2.2]AS3语法——控制语句和数据类型.rar

    2. 浮点型:`Number`,可以表示整数和浮点数,包括正负无穷和NaN。 3. 字符串:`String`,用于存储文本。 4. 布尔型:`Boolean`,只有两个值,`true`和`false`。 5. 空值:`null`,表示变量没有值。 6. ...

    AS3及Flex的百条常用知识.pdf

    // 输出 "number",但实际上它是NaN (not a number) trace(quantity is Number); // 输出 true trace(quantity != NaN); // 输出 false ``` 对于更精确的非数字检测,可以使用`isNaN()`函数,如: ```as isNaN...

Global site tag (gtag.js) - Google Analytics