{}.getType() 语法在 Gson 中意味着什么?
What does the {}.getType() syntax mean in Gson?
在 Gson 文档中,我 运行 跨过此构造以用于将 JSONified Spotify Artist 对象列表转换回对象的 ArrayList。我在 onRestoreInstanceState() 中使用它。
但是,我从未见过声明后的 {}。有人可以向我解释这是什么意思吗?我知道 getType() 是成员 class 但为什么是 {}?
Type type = new TypeToken<List<Artist>>() {}.getType();
mArtistsList = new Gson().fromJson(jsonSearchResults, type);
{}
表示 anonymous class 不覆盖任何方法。这是您之前见过的另一个匿名 class:
Runnable r = new Runnable() {
@Override
public void run() {
}
};
.getType()
returns a java.lang.reflect.Type
Gson 用来识别哪个 TypeAdapter
它将用于序列化和反序列化你的 Object
/ JSON String
.
请参阅 了解 Gson 如何使用它来推断泛型类型参数;简短的版本是它需要使用匿名 class 否则它不会工作。
在 Gson 文档中,我 运行 跨过此构造以用于将 JSONified Spotify Artist 对象列表转换回对象的 ArrayList。我在 onRestoreInstanceState() 中使用它。
但是,我从未见过声明后的 {}。有人可以向我解释这是什么意思吗?我知道 getType() 是成员 class 但为什么是 {}?
Type type = new TypeToken<List<Artist>>() {}.getType();
mArtistsList = new Gson().fromJson(jsonSearchResults, type);
{}
表示 anonymous class 不覆盖任何方法。这是您之前见过的另一个匿名 class:
Runnable r = new Runnable() {
@Override
public void run() {
}
};
.getType()
returns a java.lang.reflect.Type
Gson 用来识别哪个 TypeAdapter
它将用于序列化和反序列化你的 Object
/ JSON String
.
请参阅