通过反射迭代数组

2022-09-01 11:18:51

我正在做一些反思工作,并遇到了一个小问题。

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

我建议:

对象实例可迭代

这将使工作,但它不是,(显然仅适用于列表和设置以及实现它的人。

那么我怎么会识别一个数组一些,或或.。?Object[]long[]Long[]

谢谢


答案 1

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

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);
    }
}

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


答案 2

您的意思是?Object.getClass().isArray()