2012-01-13 27 views
0

我在通過GWT序列化包含投射到其基類的子類的對象時遇到問題。我的班級結構如下:我無法序列化通過GWT投射到其基類的子類

public class BaseManagedObject implements IsSerializable 
{ 
    public Shortcut getShortcut() 
    { 
     return new Shortcut(); 
    } 
} 

public class User extends BaseManagedObject implements IsSerializable 
{ 
    public Shortcut getShortcut() 
    { 
     return new DomainMemberShortcut(); 
    } 
} 

public class Shortcut implements IsSerializeable {} 

public class DomainMemberShortcut extends Shortcut implements IsSerializable {} 

當我序列化一個用戶對象時,我得到「響應無法反序列化」。如果我將用戶更改爲在getShortcut()中返回快捷方式,則沒有任何問題。我添加了引用DomainMemberShortcut的代碼,只是爲了驗證我可以用它構建,並且工作正常。

有什麼建議嗎? 謝謝,

+0

糟糕 - 我遺漏了子類中的默認構造函數。 GWT需要一個無參數構造函數,我已經將它添加到基類Shortcut中。 – PeterD 2012-01-13 01:40:22

+0

如果您找到解決方案,您應該寫出答案並接受它。真。 – 2012-01-13 07:41:05

回答

0

找到解決方案 - 我錯過了DomainMember子類中的默認無參數構造函數。