[Effective Java] 반환 타입으로는 Stream 보다 Collection이 낫다. (item 47)


[Effective Java] 반환 타입으로는 Stream 보다 Collection이 낫다. (item 47)

Stream에서는 반복을 지원하지 않기 때문에 API에서 Stream만 반환하도록 한다면 반복과 stream을 잘 시기적절하게 사용하기를 원하는 사용자는 불만을 토로할 수 있다. Stream을 사용할 수도 반복을 사용할 수도 있게 지원해야 한다. Stream과 iterator Stream 인터페이스는 Iterable 인터페이스가 정의한 추상 메서드를 전부 포함하고 정의한 방식대로 동작하나 for-each로 stream을 반복할 수 없는 이유는 Stream이 Iterable을 extend 하지 않아서 이다. 실제로 BaseStream을 열어보면 iterator메서드가 들어있다. 하지만 반복문에서 활용하면 컴파일 에러가 발생한다. 메서드 참조를 매개변수화된 Iterable로 적절히 형변환 해줘야 한다. St..


원문링크 : [Effective Java] 반환 타입으로는 Stream 보다 Collection이 낫다. (item 47)