这可能是一个愚蠢的问题,但我真的需要找到一个解决方案。
这是我的代码:
public static <J> J[]fromJson(Class<?> classType, String fileLocation){
try {
Gson gson = new Gson();
J[] data = (J[]) gson.fromJson(new FileReader(fileLocation), classType[].class);
return (J[]) data;
} catch (Exception oe) {
System.err.println("Exception: " + oe.getMessage());
return null;
}
但是Java不允许将decalration作为classType [] .class(第5行)。我需要调用我的函数fromJson(People.class,&#34; file.json&#34;)。我尝试使用此方法是通用的,因此我可以对Json文件中需要的不同类类型使用相同的方法。
有人能告诉我我做错了什么吗?
非常感谢你。
答案 0 :(得分:0)
遍历解决方案将创建一个空数组
J[] arrayModel = (J[]) Array.newInstance(classType, 0);
J[] data = (J[]) gson.fromJson(new FileReader(fileLocation), arrayModel.getClass());