retrofit2を使用して、同期Jsonプロキシを構築しています。Javaメソッドの2つのジェネリックタイプ
私のサーバーの応答をフォーマットして、常に次のとおりです。
{status:code, something:{complex object}}
ので、私が持っている:
public class BasicResponse<T> {
private T data;
@SerializedName("status")
private String status;
}
を私のパーサは動的に型を定義に基づいてBasicResponse<T>
を作成するマップを持っていますサーバーの応答の「何か」の名前
実際にはすべて正常に動作しています。「何か」がオブジェクトのリストを返すと、配列を使用して作業していますと。
しかし、私は、コレクションのいずれかのタイプに、配列を変更したいと私は本当にパーサを変更したくないので、私は、メソッド作成:私は "いくつかを取得したいと思い、この方法では
private <U> BasicResponse<U> handleResponse(Response<? extends BasicResponse<U>> resp){
BasicResponse handledResponse = null;
if (resp != null && resp.isSuccessful() && resp.body() != null) {
resp.body();
if(handledResponse.getData().getClass().isArray())
handledResponse.setData(Arrays.asList(handledResponse.getData()));
//a lot of others stuff
return handledResponse;
}
をBasicResponse<User[]>
としてRESP」とBasicResponse<List<User>>
にそれを変換しかしList<User>
としてリターンをコンパイルすることはできませんUser[]
Javaから異なっていると私は、同じことはできません一般的な2つの種類が...持っている必要があります
それは可能ですか?