Отражение и многомерные массивы - PullRequest
4 голосов
/ 23 апреля 2009

У меня есть код, который использует отражение на входном объекте и выполняет некоторую обработку данных, хранящихся в объекте. Объект ввода может быть чем угодно, например String, int или double и т. Д., Иногда это может быть многомерный массив. Я знаю, как сделать это для двумерных массивов, но я бы предпочел что-то, что будет работать для любого данного размерного массива. Любое руководство для достижения этой цели будет полезно. Спасибо,

1 Ответ

6 голосов
/ 23 апреля 2009

Звучит так, будто вам нужна либо рекурсия, либо цикл, либо оба.

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
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...