관리 메뉴

피터의 개발이야기

[Kotlin] 코틀린에서 null인 경우 분기처리하는 방법 본문

Programming/Kotlin

[Kotlin] 코틀린에서 null인 경우 분기처리하는 방법

기록하는 백앤드개발자 2024. 9. 2. 10:10
반응형

ㅁ 들어가며

ㅇ 지난 글, [Kotlin] Kotlin에서 Long 타입이 null일 때 기본값을 설정하는 방법에서 null 값인 경우 기본값 처리 방법에 대해서 정리하였는데, 이를 응용하여 requestDto.somethingSeq가 null인 경우를 분기 처리하는 방법은 여러 가지가 있어서 그 방법을 정리해 보았다.

 

ㅁ 안전호출 연산자(?)와 엘비스 연산자(?:)

val result = requestDto.somethingSeq?.let { seq ->
    // seq가 null이 아닌 경우 실행될 코드
    "Sequence: $seq"
} ?: run {
    // seq가 null인 경우 실행될 코드
    "Sequence is null"
}

 

ㅁ when 표현식 사용

val result = when (val seq = requestDto.somethingSeq) {
    null -> "Sequence is null"
    else -> "Sequence: $seq"
}

 

ㅁ if-else

val result = if (requestDto.somethingSeq != null) {
    val seq = requestDto.somethingSeq
    // seq가 null이 아닌 경우 실행될 코드
    "Sequence: $seq"
} else {
    // seq가 null인 경우 실행될 코드
    "Sequence is null"
}

 

ㅁ requireNotNull()

try {
    val seq = requireNotNull(requestDto.somethingSeq) { "somethingSeq must not be null" }
    // seq가 null이 아닌 경우 실행될 코드
    "Sequence: $seq"
} catch (e: IllegalArgumentException) {
    // seq가 null인 경우 실행될 코드
    "Sequence is null: ${e.message}"
}

ㅇ requireNotNull함수는 값이 null인 경우 IllegalArgumentException을 발생시킨다.

ㅇ try-catch와 함께하면 null에 대한 분기 처리가 가능하다.

ㅇ 번외의 null에러 처리 시 접합한 방법이다.

 

ㅁ 함께 보면 좋은 사이트

 [Kotlin] 기본 - Null 처리 '? / ?. / !! / ?: / lateinit / lazy'

 [Kotlin] 코틀린 null 처리 - ? ?. ?: !!, let, lateinit, 제너릭, 플랫폼 타입

 [코틀린] 코틀린에서 Type을 다루는 방법

반응형
Comments