【发布时间】:2013-03-12 17:56:19
【问题描述】:
有没有人遇到过一些类在客户端丢失了他的类类型的情况?
假设我有这个:
AS3
[Bindable][RemoteClass(alias="dto.someClass")]
public class someClass{
//some public variables
}
java
package dto;
public class someClass{
//some private variables
//getters and setters
}
我正在通过远程对象从服务器获取列表。
Java
public List<someClass> someFunction(){
//code creating a list
return list;
}
AS3
private function remoteObject_resultHandler(e:ResultEvent):void{
result=e.result as ArrayCollection;
}
但是当你尝试trace(""+(result.getItemAt(0) is someClass)) 时,一些远程类返回真而另一些返回假,如果我没有注意到这一点,当我将数组发送回服务器时情况会变得更糟,因为它最终会变成一个列表flex.messaging.io.amf.ASObject 的,我什至不能转换成任何东西(我得到一个转换异常)。
我遇到了一些 RemoteClasses 的问题,在仔细检查了远程别名后,在某些情况下我根本无法修复它......
那么,有没有其他人经历过这种情况?
【问题讨论】:
-
我不清楚您遇到的是编译器错误还是运行时错误。如果你的 java 服务总是返回一个数组;你可能永远不会创建底层类对象的实例;这意味着它永远不会编译到您的最终 SWF 中,这意味着它不会自动转换。虽然,我认为使用“someClass”的跟踪会强制编译该类;所以可能有其他原因导致问题。例如,所有公共 getter/setter 必须在两个类中定义,并且必须具有相同的大小写敏感性并且在类中的顺序相同。
-
不不不,你说得对,我只是注意到它已经被那条线修复了,这让我少说话了......
-
看来我必须在我的 AS3 代码中至少对该对象进行一次引用,否则它不会自动转换...
-
哦,跟踪结果是假的,但是,数组现在在跟踪之后可以很好地序列化。
-
nvm 与跟踪...也显示为真...
标签: java actionscript-3 apache-flex