{} .getType()语法在Gson中意味着什么?

时间:2015-08-03 19:08:17

标签: java json gson

在Gson文档中,我遇到了这个构造,用于将JSONified Spotify Artist对象列表转换回对象的ArrayList。我在onRestoreInstanceState()中使用它。

但是,我在声明之后从未见过{}。有人可以向我解释这是什么意思吗?我知道getType()是一个成员类,但为什么{}?

 Type type = new TypeToken<List<Artist>>() {}.getType();
 mArtistsList = new Gson().fromJson(jsonSearchResults, type);

1 个答案:

答案 0 :(得分:4)

{}表示anonymous class并不覆盖任何方法。这是您之前见过的另一个匿名课程:

Runnable r = new Runnable() {
   @Override
   public void run() {
   }
};

.getType()会返回java.lang.reflect.Type,Gson会使用该my answer here for more information来确定将TypeAdapter用于序列化和反序列化Object / JSON {{1} }。

请参阅https://www.youtube.com/watch?v=ptK9-CNms98,了解Gson如何使用它来推断泛型类型参数;短版本是它需要使用匿名类,否则它将不起作用。