1 package org.hamcrest.internal; 2 3 import java.lang.reflect.Array; 4 import java.util.Iterator; 5 6 public class ArrayIterator implements Iterator<Object> { 7 private final Object array; 8 private int currentIndex = 0; 9 10 public ArrayIterator(Object array) { 11 if (!array.getClass().isArray()) { 12 throw new IllegalArgumentException("not an array"); 13 } 14 this.array = array; 15 } 16 17 @Override 18 public boolean hasNext() { 19 return currentIndex < Array.getLength(array); 20 } 21 22 @Override 23 public Object next() { 24 return Array.get(array, currentIndex++); 25 } 26 27 @Override 28 public void remove() { 29 throw new UnsupportedOperationException("cannot remove items from an array"); 30 } 31 } 32