java.util.NoSuchElementException을 던지지 않는 Iterator.next()의 구현을 보고합니다.

그러한 구현은 java.util.Iterator의 컨트랙트를 위반하며 반복자가 표준이 아닌 방식으로 사용되는 경우 탐지하기 어려운 버그를 초래할 수 있습니다.

예:


  class Numbers implements Iterator<Integer> {
    @Override
    public Integer next() { // 경고
        if (hasNext()) {
            return generateNext();
        } else {
            return null; // 대신 NoSuchElementException을 던져야 합니다
        }
    }

    ...
  }