使用JAVA反射初始化数组

在做JSON解析时,遇到了在不知道数组类型的前期下,需要转化为具体类型数组的问题。可以使用JAVA的反射来做。

JSONArray jsonArray = (JSONArray) entry.getValue();

if (jsonArray.size() > 0) {

    Object array = null;

    // 假如数组中的class类型不同,则初始化Object数组

    if (jsonArray.size() > 1

        && !jsonArray.get(0).getClass().getName()

            .equals(jsonArray.get(1).getClass().getName())) {

        array = Array.newInstance(Object.class, jsonArray.size());

    } else {

        // 根据Json数组中的元素来确定数组类型

        array = Array.newInstance(jsonArray.get(0).getClass().getClass(),

            jsonArray.size());

    }



    // 使用Array中的set方法来设置数组的值

    for (int i = 0; i < jsonArray.size(); i++) {

        Array.set(array, i, jsonArray.get(i));

    }

    processBasicMap.put(entry.getKey(), array);

}     

 

你可能感兴趣的:(java反射)