아니요, list.iterator()는 null을 반환 할 수 없습니다. 항상 Iterable (Iterable 인터페이스 구현) 유형의 클래스 객체를 반환합니다.
소스 코드에서도 : iterator()
메서드는 new 키워드를 사용하여 새로운 iterable 개체를 반환하므로 null이 될 가능성이 없습니다.
다음
/**
* Returns an iterator over the elements in this list in proper sequence.
*
* <p>The returned iterator is <a href="#fail-fast"><i>fail-fast</i></a>.
*
* @return an iterator over the elements in this list in proper sequence
*/
public Iterator<E> iterator() {
return new Itr();
}
Itr is a inner class defined in ArrayList
클래스 자체 : 아래의 ArrayList 클래스의 반복자() 메서드의 코드입니다. JDk 소스 코드에서 List 구현물 중 일부를 보았습니다. 모든 곳에서 iterator 객체를 반환하기 위해 new 키워드가 사용되었으므로 list.iterator()에 대해 null 체크가 필요하지 않다고 생각합니다. 내가 IntelliJ에 IDE에서 아래의 코드를 시도하더라도
는 그 말 IDE 정보에있는 "Condition 'iterator != null' is always 'true'
"나는 list.iterator에서 RETURN에 널 (null)을 확인하지 않을 것
List<String> list = new ArrayList<>();
Iterator<String> iterator = list.iterator();
if(iterator != null) {
System.out.println("");
}
(). 물론 목록에서 null 체크만으로도 합리적 일 수 있습니다. – Michal
아니요, 우리는이 수표를 요구하지 않습니다. Javadoc에 기술되어 있지 않은 경우, null를 돌려 줄 수가 없습니다. 사람들이 여러 번 '무엇을 할 것인가'로 갈 수는 없습니다. 그것은 민주주의가 아닙니다. 중복 코드는 항상 잘못되었습니다. – EJP
누군가이 수표를 사용하는 예를 제공 할 수 있습니까? List가 반복자에 대해 null을 반환한다는 것은별로 의미가 없습니다. – matt