code: public static <T> void forEach(Iterable<T> iterable, Procedure<? super T> procedure)
      {
          if (iterable instanceof InternalIterable)
          {
              ((InternalIterable<T>) iterable).forEach(procedure);
          }
          else if (iterable instanceof ArrayList)
          {
              ArrayListIterate.forEach((ArrayList<T>) iterable, procedure);
          }
          else if (iterable instanceof List)
          {
              ListIterate.forEach((List<T>) iterable, procedure);
          }
          else if (iterable != null)
          {
              IterableIterate.forEach(iterable, procedure);
          }
          else
          {
              throw new IllegalArgumentException("Cannot perform a forEach on null");
          }
      }
docs: The procedure is evaluated for each element of the iterable.
  <p>
  Example using a Java 8 lambda expression:
  <pre>
  Iterate.<b>forEach</b>(people, person -> LOGGER.info(person.getName());
  </pre>
  <p>
  Example using an anonymous inner class:
  <pre>
  Iterate.<b>forEach</b>(people, new Procedure<Person>()
  {
  public void value(Person person)
  {
  LOGGER.info(person.getName());
  }
  });
  </pre>