org.sonar.l10n.java.rules.squid.S1849.html Maven / Gradle / Ivy
The newest version!
Calling Iterator.hasNext()
is not supposed to have any side effects, and therefore should not change the state of the iterator. Iterator.next()
advances the iterator by one item. So calling it inside Iterator.hasNext()
, breaks the hasNext()
contract, and will lead to unexpected behavior in production.
Noncompliant Code Example
public class FibonacciIterator implements Iterator<Integer>{
...
@Override
public boolean hasNext() {
if(next() != null) {
return true;
}
return false;
}
...
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy