Retrofit2 + GsonConverter 제너릭 타입 자동 컨버팅
조회수 1574회
public class ResultVO<T> {
public Result result;
public Result getResult() {
return result;
}
public class Result {
public String code;
public ArrayList<T> data;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public ArrayList<T> getData() {
return data;
}
}
}
@POST("point/getMyPointHistory.json")
Call<ResultArrayVO<CheeseGoldHistoryVO>> getMyPointHistory(@Query("type") String type, @Query("year") String year, @Query("month") String month);
현재 위 코드와 같이 제너릭으로형태로 바로 받고싶습니다.
하지만 https://github.com/google/gson/blob/master/UserGuide.md#TOC-Serializing-and-Deserializing-Generic-Types 같은문제가 있어 CastException이 발생하는데요.
공식문서에서 해결책이 TypeToken을 생성하라는것인데...
질문
- Custom Model 을 만들때 TypeAdapter를 어떻게 만들어야 할 지 모르겠습니다.
- AutoConverting 될때 타입을 자동으로 지정되도로 하고싶습니다.
감사합니다.
1 답변
-
인터페이스에서는 @POST("point/getMyPointHistory.json") Call< JsonObject 또는 JsonArray >로 하고
해당 request를 발생하는 함수의 반환 타입을 원하는 타입으로 지정하고 그에 맞게 JsonObject/JsonArray를 casting하면 될듯 합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력