46 lines
896 B
Plaintext
46 lines
896 B
Plaintext
== Why is this an issue?
|
|
|
|
By contract, any implementation of the ``++java.util.Iterator.next()++`` method should throw a ``++NoSuchElementException++`` exception when the iteration has no more elements. Any other behavior when the iteration is done could lead to unexpected behavior for users of this ``++Iterator++``.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,java]
|
|
----
|
|
public class MyIterator implements Iterator<String>{
|
|
...
|
|
public String next(){
|
|
if(!hasNext()){
|
|
return null;
|
|
}
|
|
...
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,java]
|
|
----
|
|
public class MyIterator implements Iterator<String>{
|
|
...
|
|
public String next(){
|
|
if(!hasNext()){
|
|
throw new NoSuchElementException();
|
|
}
|
|
...
|
|
}
|
|
}
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::message.adoc[]
|
|
|
|
endif::env-github,rspecator-view[]
|