私のプロジェクトには次の方法があります
public void execute(final int apiId, final ResponseHandler handler, final Type type)
typeは次のようにTypeTokenを使用して決定されます
final Type serviceErrorType = new TypeToken<>() {
}.getType();
私はこれを経験しました リンク ここで、Type
とTypeToken
について完全に理解できませんでした
誰もがリンクを共有したり、これら2つの概念を理解するのを手伝ってもらえますか?
link から提供:
クライアントにこのクラスのサブクラスを作成させ、実行時でも型情報を取得できるようにします。
例で話しましょう。
JSONをJavaクラスの Gson ライブラリを使用して解析する)にしたい場合、Gsonに具体的に伝える必要があります。
このJSONをListofUserオブジェクトに変換したい
それをGsonにどのように伝えますか? User
のみの場合は、User.class
と伝えることができます。しかし、List<User>.class
と言うことはできません
new Gson().fromJson(json, new TypeToken<List<User>>(){}.getType())
しかし、GsonがList of Users
に変換するように正確に指定できるようになりました。
ドキュメントから説明を引用する必要があります:
ジェネリック型
T
を表します。 Javaはまだジェネリック型を表現する方法を提供していないので、このクラスはそうします。
トピックの詳細については、 このブログ投稿 をご覧ください。