为什么Gson中的TypeToken结构如此奇怪?
2022-09-03 00:41:24
当我使用Gson在对象和json之间解析时,TypeToken的初始化是如此奇怪:
Type collectionType = new TypeToken<Collection<Integer>>(){}.getType();
我只知道这种格式:,上面的大括号是什么?提前致谢!new TypeToken<Collection<Integer>>().getType();
附言我已经研究了类的源代码,它是一个(不是接口或抽象),没有任何构造函数,这意味着它用作默认值。TypeToken
class
no-parameter constructor
P.S.2 当我删除大括号时,它告诉我构造函数不可见。当我查看TypeToken类内部时,这是构造函数:
protected TypeToken() {
this.type = getSuperclassTypeParameter(getClass());
this.rawType = (Class<? super T>) $Gson$Types.getRawType(type);
this.hashCode = type.hashCode();
}
为什么它不直接使用呢?public