我正在使用json google库。我们可以这样:
Public Class JsonParsing<T> {
private Gson gson;
public JsonParsing(GsonBuilder builder) {
this.gson = builder.create();
}
public T[] fromJsonFromArray(String json, Class<T[]> classOfT) {
return gson.fromJson(json, classOfT);
}
}
我们如何创建Class<T[]>
的实例以传递给此方法?
补遗:
我尝试创建一个通用方法:
public <T> T[] fromJsonFromArray(String json) {
final Type type = new TypeToken<T[]>(){}.getType();
return gson.fromJson(json, classOfT);
}
似乎我不能以T[]
作为回报。那么如何用json格式解析数据数组呢?
注意:可以以非通用方式执行此操作。
我们不能有任何通用的解决方案吗?
答案 0 :(得分:2)
您可以将方法更改为:
public T fromJsonFromArray(String json, Class<T> classOfT) {
return gson.fromJson(json, classOfT);
}
并将其称为(例如):
fromJsonFromArray(someString, new Byte[0].getClass());
注意:我觉得这可能是一个通用的方法,如下所示:
public <T> T fromJsonFromArray(String json, Class<T> classOfT) {
return gson.fromJson(json, classOfT);
}
如果你依赖于封闭类型的类型参数(你的第一个例子就是这样),我看不到采用classOfT
参数的目的。
答案 1 :(得分:2)