从类名创建一个数组

时间:2015-05-21 10:55:49

标签: java json gson

这可能是一个愚蠢的问题,但我真的需要找到一个解决方案。
这是我的代码:

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文件中需要的不同类类型使用相同的方法。

有人能告诉我我做错了什么吗?
非常感谢你。

1 个答案:

答案 0 :(得分:0)

遍历解决方案将创建一个空数组

J[] arrayModel = (J[]) Array.newInstance(classType, 0);
J[] data = (J[]) gson.fromJson(new FileReader(fileLocation), arrayModel.getClass());