Kotlin Enum에서 value() 함수 대신에 entries를 사용하면 좋은점
values() 함수의 문제점
기본적으로 values()는 변경 가능한(mutable) Array
- HttpStatus.resolve allocates HttpStatus.values() once per invocation
- Kotlin standard library
- kotlinx.serialization Enum deserializer
- MySQL JDBC Remove Enum.values() calls to avoid unnecessary array
해결방법
kotiln 1.8.20 버전에서 beta로 제공하며 1.9.0에서 정식 릴리즈 된 ‘entries’를 사용하면 됩니다. entries가 values() 보다 더 나은 이점은 다음과 같습니다.
- 미리 할당된 리스트를 반환 합니다. (이는 항상 같은 리스트를 반환합니다.)
- 변경이 불가능합니다. (immutable)
- entries는 EnumEntries
type을 반환 하는데 이는 List 를 상속함으로 List의 기존 extention 함수를 사용할 수 있음과 동시에 custom을 할 수 있습니다.
This post is licensed under CC BY 4.0 by the author.