001package org.hamcrest.internal; 002 003import java.lang.reflect.Array; 004import java.util.Iterator; 005 006public class ArrayIterator implements Iterator<Object> { 007 private final Object array; 008 private int currentIndex = 0; 009 010 public ArrayIterator(Object array) { 011 if (!array.getClass().isArray()) { 012 throw new IllegalArgumentException("not an array"); 013 } 014 this.array = array; 015 } 016 017 @Override 018 public boolean hasNext() { 019 return currentIndex < Array.getLength(array); 020 } 021 022 @Override 023 public Object next() { 024 return Array.get(array, currentIndex++); 025 } 026 027 @Override 028 public void remove() { 029 throw new UnsupportedOperationException("cannot remove items from an array"); 030 } 031}