KOTLIN · 기초 문법
Null 안전성 — ?, ?., ?:, !!
Kotlin의 핵심 기능. 컴파일 타임에 NullPointerException을 방지하는 타입 시스템.
기초 문법입문nullable??.?:!!
핵심 설명
Kotlin의 핵심 기능. 컴파일 타임에 NullPointerException을 방지하는 타입 시스템.
Kotlin code
// Non-null 타입 (기본) — null 불가
var name: String = "Kotlin"
// name = null // ❌ 컴파일 에러
// Nullable 타입 — ? 붙이기
var nickname: String? = "Dev"
nickname = null // ✅
// Safe call (?.) — null이면 null 반환
val length = nickname?.length // Int?
// Elvis operator (?:) — null이면 기본값
val len = nickname?.length ?: 0 // Int
// Non-null assertion (!!) — null이면 NPE
// 확실히 null이 아닐 때만 사용
val forced = nickname!!.length // 위험!
// let으로 null 아닌 경우만 실행
nickname?.let { nick ->
println("닉네임 길이: ${nick.length}")
}
// 안전한 타입 캐스팅
val obj: Any = "hello"
val str: String? = obj as? String // 실패 시 null학습 팁
?: Elvis 연산자는 null일 때 기본값을 제공합니다. throw도 표현식이라 val x = y ?: throw IllegalArgumentException("null!")도 가능합니다.
주의할 점
!!를 남용하면 Java NPE와 동일합니다. ?., ?:, let으로 해결 가능한 경우 !!는 피하세요.
자주 묻는 질문
Null 안전성 — ?, ?., ?:, !!란 무엇인가요?
Kotlin의 핵심 기능. 컴파일 타임에 NullPointerException을 방지하는 타입 시스템.
Null 안전성 — ?, ?., ?:, !! 학습 시 주의할 점은 무엇인가요?
!! 를 남용하면 Java NPE와 동일합니다. ?. , ?: , let 으로 해결 가능한 경우 !! 는 피하세요.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.