我的项目中有以下方法
public void execute(final int apiId, final ResponseHandler handler, final Type type)类型是使用TypeToken确定的,如下所示
final Type serviceErrorType = new TypeToken<>() {
}.getType();我在这里浏览了这个link,但对Type和TypeToken不能完全理解
任何人都可以分享一个链接或帮助理解这两个概念吗?
发布于 2017-03-30 20:32:11
从您提供的link:
强制客户端创建此类的子类,这样即使在运行时也可以检索类型信息。
让我们举个例子。
假设您想用Gson库解析一个Java类。现在,你必须明确地告诉Gson:
我想把这个JSON翻译成一个List of User objects
你怎么跟Gson说呢?如果只有User,你可以告诉User.class。但是不可能说List<User>.class
new Gson().fromJson(json, new TypeToken<List<User>>(){}.getType())但是现在您可以精确地指定Gson应该将其转换为List of Users。
应该引用文档中的解释:
表示泛型类型
T。Java还没有提供表示泛型类型的方法,所以这个类提供了。
有关该主题的更多详细信息,请查看this blog post。
https://stackoverflow.com/questions/43117731
复制相似问题