web-dev-qa-db-ja.com

Type&TypeTokenとは何ですか?

私のプロジェクトには次の方法があります

 public void execute(final int apiId, final ResponseHandler handler, final Type type)

typeは次のようにTypeTokenを使用して決定されます

final Type serviceErrorType = new TypeToken<>() {
    }.getType();

私はこれを経験しました リンク ここで、TypeTypeTokenについて完全に理解できませんでした

誰もがリンクを共有したり、これら2つの概念を理解するのを手伝ってもらえますか?

14
Android

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はまだジェネリック型を表現する方法を提供していないので、このクラスはそうします。

トピックの詳細については、 このブログ投稿 をご覧ください。

22
azizbekian