这是我的案例
// a base class
public abstract class PageResult<T> {
@SerializedName("success")
public boolean success = false;
@SerializedName("next_page")
public int nextPage = -1;
public ArrayList<T> dataList;
}
dataList
SerializedName
中的需要是动态的,即
public class StringPageResult extends PageResult<String>{
//for this case
@SerializedName("StringResult")
public ArrayList<String> dataList
}
public class IntegerPageResult extends PageResult<Integer>{
//for this case
@SerializedName("IntegerResult")
public ArrayList<Integer> dataList
}
因此,扩展PageResult,SerializedName
的类需要不同,并且所有必须使用dataList。意思是我需要使用PageResult dataList
进行各种处理而不是子类dataList
。是否可能?
我是按照以下方式做的
public abstract class PageResult<T> {
public abstract ArrayList<T> getDataList();
@SerializedName("success")
public boolean success = false;
@SerializedName("next_page")
public int nextPage = -1;
}
public class StringPageResult extends PageResult<String>{
@SerializedName("StringResult")
public ArrayList<String> dataList;
public abstract ArrayList<String> getDataList(){
return dataList;
}
}
答案 0 :(得分:2)
使用此:
@SerializedName(value="name1", alternate={"name2", "name3"})
https://google.github.io/gson/apidocs/com/google/gson/annotations/SerializedName.html