[kotlin] !! 연산자와 널 예외 발생
Kotlin은 안전한 널 처리를 위해 디자인되었지만, 때로는 널 값을 강제로 사용해야 할 수도 있습니다. Kotlin에서는 이러한 상황을 처리하기 위해 !!
연산자를 제공합니다. 이 연산자를 사용하면 해당 변수나 표현식이 널이 아님이 확실할 때에만 사용하는 것이 좋습니다. 그렇지 않을 경우 NullPointerException
이 발생할 수 있습니다.
!!
연산자 사용 예시
val str: String? = "Hello"
val length: Int = str!!.length
위의 예시에서 str
변수 뒤의 !!
연산자는 “절대 널일 리 없다”는 의미를 갖고 있습니다. 즉, str
이 널이 아님을 보장하고 해당 표현식이 항상 유효함을 나타냅니다. 이 경우에만 .length
속성에 접근할 수 있습니다.
그러나 만약 str
이 널인 경우에 !!
연산자를 사용하면 NullPointerException
이 발생합니다. 따라서 !!
연산자를 사용할 때는 해당 변수나 표현식이 절대적으로 널일 리 없을 때만 사용해야 합니다.
널 예외 처리와 !!
연산자 사용 시 주의할 점
!!
연산자를 남용하면 코드의 안정성이 떨어지고 NullPointerException
이 발생할 가능성이 높아집니다. 따라서 코드를 작성할 때는 가급적이면 !!
연산자를 최소화하고, 대신 안전한 널 처리를 위해 ?.
연산자나 널 병합 연산자 ?:
를 활용하는 것이 좋습니다.
프로그래밍을 할 때는 항상 안정성과 예외 처리에 주의를 기울이는 것이 중요합니다.
참고: Kotlin 공식 문서 - Null Safety