2010-03-15 83 views
2

因此,我們有一個帶有兩個泛型ArrayLists的java類。它看起來像BlazeDS - 將java列表中的ArrayList <BaseClass>轉換爲Actionscript

public class Blah 
{ 
    public ArrayList<ConcreteClass> a; 
    public ArrayList<BaseClass> b; 
} 

在ActionScript類使用[ArrayElementType(「具體類」)],我們能夠讓所有的「A」 S轉化罰款。然而,對於「b」,由於實際的類穿過線是像BaseClassImplementation1,BaseClassImplementation2等類的異類混合,它被作爲一個對象鍵入。有沒有辦法將它轉換爲具體的具體類,假設在客戶端存在強類型的java版本的java類

感謝您的幫助! Regis

回答

2

爲確保所有的DTO類都通過AS和Java進行編組,您需要使用指向java類定義的「RemoteClass」屬性將每個遠程類定義爲AS中的「遠程類」這[RemoteClass(alias =「com.myco.class」)]。

當序列化/反序列化並正確轉換它時,BlazeDS將對類進行自省(請參閱下面的文檔)。不管這些類是如何打包或嵌套在數組中的,只要它可以被內省就可以工作。

如果您需要某個類的特殊序列化,您可以通過在啓動時使用PropertyProxyRegistry註冊方法擴展「AbastractProxy」並將它們加載到blazeds中來創建自己的序列化代理(稱爲beanproxy)。

你會在Blaze開發者指南http://livedocs.adobe.com/blazeds/1/blazeds_devguide/中找到大部分內容。

在這裏創建自己的beanproxy類的樣子://livedocs.adobe.com/blazeds/1/javadoc/flex/messaging/io/BeanProxy.html

相關問題