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您的案例需要直接访问您的Venue字段的默认策略。Parceler 不使用@SerializedName注释。

这应该是您Venue班级的合理配置:

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