Reports implementations of Iterator.hasNext() or ListIterator.hasPrevious() that call Iterator.next() or ListIterator.previous() on the iterator instance. Such calls are almost certainly an error, as methods like hasNext() should not modify the iterators state, while next() should.

Example:


  class MyIterator implements Iterator<Integer> {
    public boolean hasNext() {
      return next() != null;
    }
  }