code: private Iterator<Object> arrayIt(final Object array) {
          return new Iterator<Object>() {
              private int index = 0;
              private final int length = Array.getLength(array);
              @Override
              public boolean hasNext() {
                  return this.index < this.length;
              }
              @Override
              public Object next() {
                  try {
                      return Array.get(array, this.index++);
                  } catch (Throwable t) {
                      throw new NoSuchElementException(t.getMessage());
                  }
              }
          };
      }
docs: Obfuscated Object type or primitive array iterator.
  @param array the object array
  @return the iterator