進行以下模型類(parcelable)
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Example implements Parcelable {
@SerializedName("bgroup")
@Expose
private String bgroup;
public String getBgroup() {
return bgroup;
}
public void setBgroup(String bgroup) {
this.bgroup = bgroup;
}
protected Example(Parcel in) {
bgroup = in.readString();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(bgroup);
}
@SuppressWarnings("unused")
public static final Parcelable.Creator<Example> CREATOR = new Parcelable.Creator<Example>() {
@Override
public Example createFromParcel(Parcel in) {
return new Example(in);
}
@Override
public Example[] newArray(int size) {
return new Example[size];
}
};
}
不是創建接口類這樣
public interface ApiService {
@GET("<URL>")
Call<List<Example>> getBloodGroups();
}
最後調用改造喜歡以下內容:
Call<List<Example>> call = new RestClient(this).getApiService()
.getBloodGroups();
call.enqueue(new Callback<List<Example>>() {
@Override
public void onResponse(Call<List<Example>> call, Response<List<Example>> response) {
}
@Override
public void onFailure(Call<List<Example>> call, Throwable throwable) {
}
});
它清楚地告訴你,它無法從對象來自哪裏讀取字符串。爲什麼不創建一個映射來讓'List'後來直接從'Mapping.bgroup'提取一個字符串呢? –
如果您爲自定義數據對象使用了相同的字符串,則自動翻新會自動爲您提供帶有值的格式化數據對象。所以使用相同的密鑰。並使用依賴編譯'com.squareup.retrofit2:converter-gson:2.0.2' –
@LyubomyrShaydariv感謝您的回答。你可以給這個場景簡單的列表例子嗎? –