[kotlin] !! 연산자와 널 예외 발생

Kotlin은 안전한 널 처리를 위해 디자인되었지만, 때로는 널 값을 강제로 사용해야 할 수도 있습니다. Kotlin에서는 이러한 상황을 처리하기 위해 !! 연산자를 제공합니다. 이 연산자를 사용하면 해당 변수나 표현식이 널이 아님이 확실할 때에만 사용하는 것이 좋습니다. 그렇지 않을 경우 NullPointerException이 발생할 수 있습니다.

!! 연산자 사용 예시

val str: String? = "Hello"
val length: Int = str!!.length

위의 예시에서 str 변수 뒤의 !! 연산자는 “절대 널일 리 없다”는 의미를 갖고 있습니다. 즉, str이 널이 아님을 보장하고 해당 표현식이 항상 유효함을 나타냅니다. 이 경우에만 .length 속성에 접근할 수 있습니다.

그러나 만약 str이 널인 경우에 !! 연산자를 사용하면 NullPointerException이 발생합니다. 따라서 !! 연산자를 사용할 때는 해당 변수나 표현식이 절대적으로 널일 리 없을 때만 사용해야 합니다.

널 예외 처리와 !! 연산자 사용 시 주의할 점

!! 연산자를 남용하면 코드의 안정성이 떨어지고 NullPointerException이 발생할 가능성이 높아집니다. 따라서 코드를 작성할 때는 가급적이면 !! 연산자를 최소화하고, 대신 안전한 널 처리를 위해 ?. 연산자나 널 병합 연산자 ?: 를 활용하는 것이 좋습니다.

프로그래밍을 할 때는 항상 안정성과 예외 처리에 주의를 기울이는 것이 중요합니다.

참고: Kotlin 공식 문서 - Null Safety