되는 시대에 설계됐다. 하지만 자바와의 부드러운 상호 운용이 핵심 목표이고, 자바는 가변 컬
렉션을 사용한다. 스칼라
Scala
는 자체적인 복잡한 영속적인
persistent
(불변적인 컬렉션인데 데이
터 공유를 사용해 성능을 향상시킴) 컬렉션을 도입했지만 이로 인해 자바와 상호 운용되는 경
계면에서 컬렉션을 복사해야만 했는데, 이 과정은 비효율적이면서 성가신 일이다. 그렇다면 코
틀린은 어떻게 이런 차이를 극복하고 불변 컬렉션이 자바 컬렉션과 매끄럽게 상호 운용되게 할
수 있었을까?
코틀린 개발자는 자바 컬렉션 인터페이스에서 상태를 바꾸는 메서드를 제거하고
kotlin
.
collections
패키지 안에서
Collection
<
E
>
,
List
<
E
>
등의 인터페이스로 공개한다. 그리
고 이들을
MutableCollection
<
E
>
,
MutableList
<
E
>
등으로 확장하면서 다시 상태 변경 메
서드를 추가했다. 따라서 코틀린에 있는
MutableList
는
List
의 하위 타입이며,
List
는 다시
Collection
의 하위 타입이다.
MutableList
는
MutableCollection
도 구현한다.
겉으로 볼때 이는 간단한 방식인 것처럼 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.