
这样行不通,因为以下代码
OwnCollection<Game> gc = new Query().<Game>getParsedCollection( ... );
实际上并没有通过
Game内部
getParsedCollection()。
<Game>这里只告诉
getParsedCollection()应该返回的编译器
OwnCollection<Game>,但是
T内部
getParsedCollection()(和
parseToGenericCollection())仍然被擦除,因此
TypeToken无法帮助您获取其值。
您需要改为
Game.class作为参数传递
public <T> OwnCollection<T> getParsedCollection(Class<T> elementType) { ... }...OwnCollection<Game> gc = new Query().getParsedCollection(Game.class);然后用
TypeToken链接
OwnCollection的
T有
elementType如下:
Type type = new TypeToken<OwnCollection<T>>() {} .where(new TypeParameter<T>() {}, elementType) .getType();请注意,此代码用于
TypeTokenGuava,因为
TypeToken来自Gson的代码不支持此功能。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)