0

シリアライゼーションで Parceler ライブラリを使用したい。これは、このライブラリを使用せずに今持っているものです:

public class Venue {

@SerializedName("id")
String venueID;
@SerializedName("name")
String venueName;
@SerializedName("url")
String venueUrl;


public Venue() {
}}

ライブラリのチュートリアルを読んだところ、注釈を追加するだけで使用できると書かれています。

@Parcel(Parcel.Serialization.BEAN)

しかし、私はまだ混乱しています。私が理解したように、 @SerializedName アノテーションを使用する必要はありません。それで、元の名前またはシリアル化された名前でフィールドを使用する必要がありますか? このような:

    @Parcel(Parcel.Serialization.BEAN)
    public class Venue {

        //    @SerializedName("id")
        String id;
        //    @SerializedName("name")
        String name;
        //    @SerializedName("url")
        String url;

@ParcelConstructor
    public Venue(String id, String name, String url) {
        this.id = id;
        this.name = name;
        this.url = url;

    }

        public Venue() {
        }

    }

またはこれ:

    @Parcel(Parcel.Serialization.BEAN)
    public class Venue {
        //    @SerializedName("id")
        String vnueID;
        //    @SerializedName("name")
        String venueName;
        //    @SerializedName("url")
        String venueUrl;

@ParcelConstructor
        public Venue(String vnueID, String venueName, String venueUrl) {
            this.vnueID = vnueID;
            this.venueName = venueName;
            this.venueUrl = venueUrl;

        }

        public Venue() {
        }

    }

これがばかげた質問でしたら申し訳ありませんが、解析可能とシリアライゼーションはまだ理解していません。

4

1 に答える 1

1

UsingParcel.Serialization.BEANは、Parceler に Java Bean 標準に従って getter と setter を探して使用するように指示します。あなたのケースでは、フィールドに直接FIELDアクセスするデフォルトの戦略が必要です。VenueParceler はアノテーションを使用しません@SerializedName

これは、Venueクラスの適切な構成である必要があります。

@Parcel
public class Venue {
    String venueID;
    String venueName;
    String venueUrl;
}
于 2016-07-04T05:00:20.043 に答える