通过反射迭代数组

Rom*_*man 27 java reflection

我正在做一些反思工作并且遇到一个小问题.

我正在尝试将对象打印到某个GUI树,并且以通用方式检测数组有问题.

我建议:

对象instanceof Iterable

会成功,但事实并非如此(显然只适用于Lists和Set以及任何实现它的人.)

因此,如何是我会recognice数组一些Object[],或者long[]还是Long[]......?

谢谢

Boz*_*zho 65

如果您不想仅检查对象是否为数组,还要迭代它:

if (array.getClass().isArray()) {
    int length = Array.getLength(array);
    for (int i = 0; i < length; i ++) {
        Object arrayElement = Array.get(array, i);
        System.out.println(arrayElement);
    }
}
Run Code Online (Sandbox Code Playgroud)

(上面的课是java.lang.reflect.Array)


Joo*_*kka 5

你的意思是Object.getClass().isArray()