使用反射解压缩数组

Sam*_*mer 10 java arrays reflection

我正在尝试解压缩从反射对象字段获得的数组.我将常规字段的值设置为Object.如果它是一个数组,那么我想将我的一般对象转换为一个数组(无论它的类型)并提取其内容

fields[i].setAccessible(true);
        String key = fields[i].getName();
        Object value = fields[i].get(obj);

        if (value.getClass().isArray()){
            unpackArray(value);
        }
Run Code Online (Sandbox Code Playgroud)

在我的unpackArray方法中,我尝试将Object Value转换为java.util.Arrays,java.reflect.Array和Array [],但每次都不让我.

有没有办法将我的Object转换为通用数组?

非常感谢Sam

Pet*_*rey 13

所有数组的唯一父类是Object.

要提取数组的值,Object[]您可以使用.

public static Object[] unpack(Object array) {
    Object[] array2 = new Object[Array.getLength(array)];
    for(int i=0;i<array2.length;i++)
        array2[i] = Array.get(array, i);
    return array2;
}
Run Code Online (Sandbox Code Playgroud)