スポンサーリンク

{classname} declares multiple JSON fields named gson {fieldname}

スポンサーリンク

エラー内容

GsonをKotlinで取り扱う際に、親クラスのfieldを使用するときに発生するエラーです。原因は完全には理解できていませんが、Kotlinはpropertyをbacking fieldとして実現することが悪さをしているようです。
*原因の詳細調査次第、アップデートします

対策

とりあえず対策としては、子クラスをGsonでInstance化したい場合には、親クラスのpropertyに@Transientをつけます。

abstract class ParentClass constructor(
    @Transient override val property1: String,
    @Transient override val property2: String

ただし、親クラスが中小クラスではなく、かつ、deserializeしたい場合にはこの手法は問題があります。

その場合には親クラスに変更を加えずに対策を実施する必要がありますが、それは以下に記載があります。

Attention Required! | Cloudflare
タイトルとURLをコピーしました