== Why is this an issue?

If you've gone to the trouble of writing an ``++iterator++`` method in a class that doesn't implement ``++Iterable++``, that trivial omission is costing you half the benefit of the method because you can't use the class in enhanced ``++for++`` loops. 


=== Noncompliant code example

[source,java]
----
public class MyList {  // Noncompliant
  public Iterator iterator() {
    //...
  }
}

public class MyClass {

  public void doSomething(MyList myList) {
    Iterator itr = myList.iterator();
    while (itr.hasNext() {
      Object obj = itr.next(); 
      processObj(obj);
    }
  }
}
----


=== Compliant solution

[source,java]
----
public class MyList implements Iterable{
  public Iterator iterator() {
    //...
  }
}

public class MyClass {

  public void doSomething(MyList myList) {
    for(Object obj : myList) {
      processObj(obj);
    }
  }
}
----



ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

Add "implements Iterable" to this class signature.


'''
== Comments And Links
(visible only on this page)

=== on 12 Jun 2015, 13:37:49 Ann Campbell wrote:
CodePro: Implement Iterable

endif::env-github,rspecator-view[]
