我的代码在输入对象上使用反射并对存储在对象中的数据进行一些处理。输入对象可以是 String 或 int 或 double 等任何东西,有时它可以是多维数组。我知道如何为二维数组做这件事,但我更喜欢适用于任何给定维度数组的东西。任何实现这一目标的指导都会有所帮助。谢谢,

最佳答案

听起来您需要递归或循环,或两者兼而有之。

void getStuffFromArray(Object obj) {
    // assuming we already know obj.getClass().isArray() == true
    Class<?> componentType = obj.getClass().getComponentType();
    int size = Array.getLength(obj);
    for (int i = 0; i < size; i++) {
        Object value = Array.get(obj, i);
        if (value.getClass().isArray()) {
            getStuffFromArray(value);
        } else {
            // not an array; process it
        }
    }
}

关于java - 反射和多维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/779354/

10-17 01:50