Java에서 Util 함수를 만들 때는 주로 Util class를 만들어서 사용하였다. 이런 Util 작성 패턴을 Kotlin에서 그대로 사용하면 아래와 같은 코드가 된다.
// Don't
object MapUtils{
fun Map2JsonString(map: mutableMap) : String{
return objectMapper.writeValueAsString(map)
}
}
// Usage
val map: MutableMap<String, Any?> = mutableMapOf("K" to "V")
MapUtils.Map2JsonString(map) // {"K":"V"}
하지만, Kotlin에서는 Top-Level Function을 대신 사용하는 것이 좋다. Java에서와 같이 추가로 Util class를 작성할 필요도 없으며, 가독성도 훨씬 좋다.
// Do
fun mutableMap.toJsonString(): String = objectMapper.writeValueAsString(this)
// Usage
val map: MutableMap<String, Any?> = mutableMapOf("K" to "V")
map.toJsonString() // {"K":"V"}
Reference
'Language > Kotlin' 카테고리의 다른 글
[kotlin/mockk] mockStatic 해제하기 - clearStaticMockk (0) | 2022.01.26 |
---|---|
[kotlin/mockk] mockk로 LocalDatetime.now() mock 테스트 (0) | 2022.01.12 |
[Kotlin] Java Scripting API (JSR-223) (0) | 2019.10.19 |
[Kotlin] Generics - 공변성(covariant)과 반공변성(contravariant) (0) | 2019.10.05 |
Kotlin Infix Notation (중위 표기법) (0) | 2019.09.17 |
댓글