【问题标题】:Remoteclass class type missing缺少远程类类类型
【发布时间】: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


【解决方案1】:

好的,它现在可以工作了,flextras 指出的是正确的,我在该类的 AS3 代码中没有任何引用,我想知道为什么我也看到了错误的跟踪,但是在完全重新编译后,服务器得到了数组很好,并且跟踪显示为真,所以一切都很好 =) 现在我想知道这是一个错误还是什么? 我在 eclipse btw 中使用 flashbuilder 4.6。

【讨论】:

  • 这不是错误。这是预期的行为。 Flex 编译器会在编译时优化未使用的类。这样可以降低文件大小并优化运行时代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-29
  • 2019-09-15
  • 2016-06-13
  • 2021-04-20
  • 2021-07-29
相关资源
最近更新 更多