GWT の RPC メカニズムで使用するシリアライズ可能なオブジェクトがいくつかあります。「id」、「revision」などの共通フィールドを含むオブジェクトをすべてサブクラスにすることにしました。ただし、GWT はスーパークラスのフィールドをシリアル化しないことに気付いたので、すべてのスーパークラスを取得するだけです。クライアント側でクラス フィールドを null にします。
Serializable クラスごとに CustomFieldSerializer を作成することなく、スーパークラス フィールドをシリアル化するにはどうすればよいですか? 出来ますか?
例:
public class Super {
private String id;
public String getId() {
return id;
}
}
public class Sub extends Super implements Serializable {
private String name;
// more stuff here
}
// on the client side, inside an AsyncCallback
onSuccess(Sub sub) {
assert(sub.getId() != null);
}
したがって、これを GWT の RPC メカニズムを介してクライアント側に送信すると、Sub のインスタンスの「id」フィールドに null 値が返されます。サーバーで id が null でないことを確認しました。また、スーパークラスに Serializable を実装しようとしましたが、運が悪かったです。
どんなアドバイスでも大歓迎です。