🛡️ Null 안전성
📖 Null 안전성이란?
**Null 안전성(Null Safety)**은 NullPointerException을 컴파일 시점에 방지하는 Kotlin의 핵심 기능입니다.
💡 Nullable 타입
Non-null vs Nullable
fun main() {
// Non-null (기본)
var name: String = "홍길동"
// name = null // ❌ 오류!
// Nullable (? 추가)
var nullableName: String? = "홍길동"
nullableName = null // ✅ 가능
}
Nullable 타입 비교
fun main() {
val name: String = "홍길동" // Non-null
val age: Int = 25 // Non-null
val email: String? = null // Nullable
val phone: Int? = null // Nullable
println(name.length) // ✅
// println(email.length) // ❌ 오류!
}
🔧 안전한 호출
?. 연산자
fun main() {
val name: String? = null
// 안전한 호출
val length = name?.length
println(length) // null
val upper = name?.uppercase()
println(upper) // null
}
체이닝
data class Address(val city: String?)
data class Person(val address: Address?)
fun main() {
val person: Person? = Person(Address("서울"))
// 안전한 체이닝
val city = person?.address?.city
println(city) // 서울
val nobody: Person? = null
val noCity = nobody?.address?.city
println(noCity) // null
}