3
私はAPIからデータを取得し、以下のようにGSONの
@SerializedName
注釈を使用してJavaオブジェクトにそれをデシリアライズするGSONと一緒にレトロフィットを使用してい
public class MyApiObject {
@SerializedName("apiJsonKey")
private String myValue;
...
}
それは正常に動作しますが、私はにMyApiObject
のオブジェクトを送信する必要がありますFirebaseデータベースを作成し、そのオブジェクトをJSONにシリアル化する必要があります。 FirebaseのJava APIはこれを自動的に行いますが、シリアル化された名前("apiJsonKey"
)ではなく、インスタンス変数の名前(myValue
)に基づいてキーを生成します。
私はFirebaseの@PropertyName
注釈を使用できますが、同じ値を持つ2つの注釈を使用する必要があります。これは冗長でエラーが発生しやすいです。
これを行うより良い方法はありますか?
私はこのアプローチについて考えましたが、私のクラスは、そのようなパラメータ/インスタンス変数が12個以上あり、それぞれに別々の定数Stringが必要です。それは本当に不要なようです、実際に行く最善の方法ですか? – Sumit
あなたのクラスはあまりにも多くのものを表しているかもしれません。大きなクラスで終わると、通常、一緒に働く小さなクラスで分割することができます。あなたのケースが複数のクラスに適合しない場合でも、エラーが発生しやすいコードを導入しない方が良いと思います。それが大きかったとしても、同じ文字列を繰り返し使用することは悪い考えです。 – gmanjon
別のオプションは、クラスの定数を区切ることです。しかし、通常、Constants、common、utilsなどの名前のクラスやパッケージは、どこに置くべきかわからないコードの穴になります。あなたのクラスを定義し、再定義して洗練するために、より多くの時間を費やす方が良いと思います。それには時間がかかりますが、通常はより強力なデザインで、読みやすく、手に入れることができます。 – gmanjon