Study/이펙티브 자바
[Effective Java] 반환 타입으로는 스트림보다 컬렉션이 낫다
💥 개요 원소 시퀀스, 즉 일련의 원소를 반환하는 메소드는 많다. 자바 7까지는 이런 메서드의 반환 타입으로 Collection, List, Set 같은 컬렉션 인터페이스나 Iterable이나 배열을 썼다. 그런데 자바 8이 스트림이라는 개념을 들고 오면서 문제가 발생했는데 스트림은 반복(iteration)을 지원하지 않는다. API를 스트림을 반환하도록 작성하면 for-each로 반복하길 원하는 사용자는 불만을 토론할 것이다. 사실 Stream 인터페이스는 Iterable 인터페이스가 정의한 추상 메서드를 전부 포함할 뿐만 아니라, Iterable 인터페이스가 정의한 방식대로 동작한다. 그럼에도 for-each로 스트림을 반복할 수 없는 이유는 extend하지 않아서다. 🔎 해결방법 이 문제를 해결해줄..
2024. 4. 20. 22:41