개요
코틀린은 널 체크에 유연하게 대처하고 있다. 편하다. 근데 이번에 실수한것도 있고 그래서 기록하기.
아래의 테스트 코드는 실패한다. 왜일까?
class Nullable {
@Test
@DisplayName("nullable 을 잘쓰자")
fun nullableToStringTest() {
getPersonAge(Person(10)) shouldBe "10"
getPersonAge(Person()) shouldBe "empty age"
}
private fun getPersonAge(person: Person? = null): String {
return person?.age.toString() ?: "empty age"
}
}
data class Person(
val age: Int? = null
)
empty age 가 반환되지 않는다. "null" 이 반환된다.
empty age 를 반환하고 싶다면 아래와 같이 변경해야 한다.
return person?.age?.toString() ?: "empty age"
변수가 null 을 허용한다면 변수까지 물음표(?)를 끝까지 붙이자.
'jvm lang' 카테고리의 다른 글
2022-08-06 [kotlin] : sortedWith & compareBy 다중정렬 (0) | 2022.08.06 |
---|---|
20220125 [kotlin] objectMapper readValue to List (수정 : 24-05-26) (0) | 2022.01.25 |
20201108 [java8] java8InAction 읽기 & 기록 [ch10] (수정 : 2020-11-11) (0) | 2020.11.11 |
20201006 [java] annotation 작동 살피기 (0) | 2020.10.07 |
20200914 [java8/java11] windows 환경에서 자바버전 두 개 관리. (0) | 2020.09.14 |