このクラスはベンダーライブラリからのものです:
public class JsonParser {
public <T> T parse(String json, Class<T> type) { ... }
}
これらは私のモデルです:
public class Video {
@Key
private String title;
public String getTitle() {
return title;
}
}
public class Response<TResult> {
@Key
private TResult result;
public TResult getResult() {
return result;
}
// ...
}
このコードは機能します:
JsonParser parser = new JsonParser();
String json = "{ \"title\": \"Hello world\" }";
Video video = parser.parse(json, Video.class);
このコードは機能しません:(構文エラーResponse<Video>.class
)
JsonParser parser = new JsonParser();
String json = "{ \"result\" : { \"title\": \"Hello world\" } }";
Response<Video> videoResponse = parser.parse(reader, Response<Video>.class);
このコードは機能します:
public class VideoResponse extends Response<Video> {
}
...
JsonParser parser = new JsonParser();
String json = "{ \"result\" : { \"title\": \"Hello world\" } }";
Response<Video> videoResponse = parser.parse(reader, VideoResponse.class);
私の質問は、そのように作成せずに、Response<Video>
クラスをparse
パラメーターとしてメソッドに渡す方法VideoResponse
です。(私のプログラムには、に似たモデルがたくさんありますVideo
。コードを複製して空のクラス、、、などを作成したくVideoResponse
ありUserResponse
ませCommentResponse
んActivityResponse
)