public boolean moveNext() { if (_delegate != null) { if (_delegate.moveNext()) { return true; } _delegate = null; } _currentElement++; if (_currentElement >= _array.length) { return false; } Object obj = _array[_currentElement]; Class clazz = obj.getClass(); if (clazz.isArray()) { if (clazz.getComponentType().isArray()) { _delegate = new MultidimensionalArrayIterator(_reflectArray, (Object[]) obj); } else { _delegate = new ReflectArrayIterator(_reflectArray, obj); } return moveNext(); } return true; }