在GSON中获取对象列表
Gson gson = new Gson();
Type token = new TypeToken<List<MyType>>(){}.getType();
return gson.fromJson(json, token);
// the common function
public <T> List<T> fromJSonList(String json, Class<T> type) {
Gson gson = new Gson();
Type collectionType = new TypeToken<List<T>>(){}.getType();
return gson.fromJson(json, collectionType);
}
// the call
List<MyType> myTypes = parser.fromJSonList(jsonString, MyType.class);
遗憾的是,返回的是StringMaps数组,而不是类型。T被解释为另一个泛型类型,而不是我的类型。有什么办法吗?
由于GSON 2.8.0
,您可以使用TypeToken#GetParametized((Type rawType,Type...typeArguments))
创建TypeToken
,那么GetType()
就可以完成这个任务。
例如:
TypeToken.getParameterized(List.class, myType).getType();
我想在我的项目中使用SpringDataJPA存储库。通常我创建自己的存储库 但是,我想提供符合以下条件的更复杂的情况: > 我有一个具有共同定义的基本实体: 我有扩展上述实体的所有其他实体,例如: 和
问题内容: 您认为可以创建类似的东西吗? 问题答案: 是的你可以。 用法示例:
问题内容: 问题摘要: 我想将具有类型参数(例如)的类作为类型参数传递给泛型方法。 假设我有一个方法: 当然,此方法对于任何类型的类都可以正常使用。我可以这样调用该方法,例如: 问题: 我发现我不能这样做: 从句法上讲,这显然是无效的。但是,我不确定如何实现这样的目标。我当然可以通过,但是泛型类型的添加使其在语法上不再有效,并且我想不出解决方法。 唯一的直接解决方案是这样的事情(看起来很愚蠢):
你好,我有两个类:Person类和Employee类,它们扩展了Person 我想写一个函数,将添加人到下界参数化列表 但是eclipse不允许它,错误消息是:“类型列表中的方法add(capture#1-of?super Employee)不适用于参数(Person)
我想使用泛型类作为另一个泛型类的类型参数。 起初,我对类的定义是这样的: 然后我的需求发生了变化,我不得不为我的R类型使用包装器/持有者类 到目前为止,我的尝试:(给出编译时错误:
问题总结:我想传递一个带有类型参数(如