
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
70 lines
1.2 KiB
Plaintext
70 lines
1.2 KiB
Plaintext
== 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[]
|