我想使用带序列化的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() {
}
}
很抱歉,如果这是一个愚蠢的问题,但我还不了解可解析和序列化。
答案 0 :(得分:1)
使用Parcel.Serialization.BEAN
将指示Parceler根据Java Bean标准查找并使用getter和setter。您的案例需要默认的FIELD
策略,该策略将直接访问您的Venue
字段。 Parceler不使用@SerializedName
注释。
这应该是Venue
类的合理配置:
@Parcel
public class Venue {
String venueID;
String venueName;
String venueUrl;
}