我正在使用 json 谷歌库。我们可以这样:
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格式的数据数组呢?
注意:可以通过非通用方式来完成此操作。
我们就不能有通用的解决方案吗?
最佳答案
您可以将方法更改为:
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
参数的目的。
关于java - java 中 Class<T[]> 的实例,以便在 json 解析器中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17360637/