【发布时间】:2016-04-25 12:37:07
【问题描述】:
我有一个函数需要创建作为泛型传入的类型的对象列表。
public static <T> List<T> readJsonFile(final String filePath) {
List<T> objectsFromFile=null;
File file = new File(System.getProperty("catalina.base") + filePath);
Gson gson = new Gson();
try (FileInputStream JSON = new FileInputStream(file)) {
BufferedReader br = new BufferedReader(new InputStreamReader(JSON));
objectsFromFile = gson.fromJson(br, new TypeToken<List<T>>() {
}.getType());
} catch (Exception e) {
e.printStackTrace();
}
return objectsFromFile;
}
当我查看结果列表中的对象类型时,它们不是 T 类型(T 将是我定义的不同类)而是 com.google.gson.internal.LinkedTreeMap 类型.
有人知道为什么吗?我怎样才能使它返回的列表是 T 类型的?
【问题讨论】: