2011-02-10 25 views
4

私はゲッターとセッターで一つのフィールドを持つJavaクラスを持って、そして別の方法でこのフィールドにアクセスゲッターとセッターの第二の対:BlazeDSのプロパティを無視する方法は?

public class NullAbleId { 
    private static final int NULL_ID = -1; 
    private int internalId; 

    getter & setter for internalId 

    public Integer getId() { 
    if(this.internalId == NULL_ID) { 
     return null;  
    } else { 
     return Integer.valueOf(internalId); 
    } 
    } 

    public void setId(Integer id) { 
     if (id == null) { 
     this.internalId = NULL_ID; 
     } else { 
     this.internalId = id.intValue(); 
     } 
    } 

} 

(この構成の理由は、私がしたいということですフラッシュ/ Flexクライアント側でway to hande Nullable Intergers

を構築し、私は2つのプロパティを持つクラスがあります:idとinternalIdを(IDプロパティは、最後に、彼らは

)internalId値を返す必要があり、唯一のテストのためにありますBlazeDS継ぎ目はidとinternalIdの両方の値を転送します。これは両方ともco合体ゲッターセッターのペア。 私はBlazeがidを転送しないようにしたいが、internalIdだけが転送されるべきである。しかし、どのように設定する必要があるのか​​分かりません。 BlazeDSの直列化のための

答えて

1

過渡/マーシャラーのほかに、あなたはExternalizableインタフェースを実装し、カスタムのシリアル化を作成することができます。

はそれは多分少し古いserialization rules

+0

ありがとう:私はexternalizableインタフェースを実装しようとしましたが、これは次の問題を引き起こします:http://stackoverflow.com/questions/4968457/blazeds-custom-serialization-causes-rangeeエラー – Ralph

3

すべてのルールはここにある:

ここ

http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=serialize_data_3.html

が引用である:「静的、過渡、または非公開のフィールドだけでなく、非公開または静的なBeanプロパティ、除外される。

idプロパティをその基準に合わせることができれば、それは除外されます。別のオプションは、あなたのidプロパティを明示的に含まないカスタムシリアライザを作成することです。

すべてのベストを、

〜ハリス

0

を参照してください、それはいくつかを助けることができる:素敵なチケットについてexcluding properties from Java to Flex via BlazeDS

EDITがあります:より良いsoluceは、それはあなたの場合@AmfIgnore(またはを使用します(私は1.5.2-RELEASEを使用しました)

関連する問題