Kotlin

[Kotlin] Null 처리 방법(Nullable, NonNull)

cob 2022. 11. 4. 08:57

 

 

 빈 값이 들어갈 수가 있으며 이를 null이라고 한다.
Java에서는 null이 들어가면서 발생하는 오류(예외)를 NPE(Null PointerException) 이라고 한다.
반면 Kotlin에서는 따로 정해진 null 예외처리가 없으며 기본적으로 변수에는 null 값이 들어갈 수 없다.

 

 

 

1. Nullable / NonNull

Nullable : 변수에 null을 넣을 수 있다는 의미

NonNull : 변수에는 기본으로 null이 들어올 수 없으니 해당 변수는 NonNull

 

1-1) ' ? '를 사용한 null 체크 방법

//기본적으로 코틀린은 NonNull type;
var  name = "jacob"

//"?"를 붙여주면 null 사용 가능 ?을 넣어야하기 때문에 타입을 생략하면 안됨
var nullName : String? = null;  


// name은  NonNull 타입이기 때문에 바로 UpperCase 사용 가능
var nameUpper = name.toUpperCase()


// ?을 넣어 줌으로써 null아니면 toUpperCase를 실행하고 null이면 null을 반환해라
var nullNameUpper : String? = nullName?.toUpperCase()

 

1-2) ' ?: '를 사용한 default 값 

var  lastName : String? = null

// null이면 "No lastName" 출력
val fullName = name + (lastName?: "No lastName")

 

 

1-3) ' !! '를 사용한 null이 아님을 명시

 fun aa ( str : String?){
	//val NotNull = str -> null일수도 있기 때문에 오류가 남 
	val NotNull = str!! // 여기에 null올 수가 없어 null이 아니라고 명시


	//null이 아니라고했기 때문에 ? 없이 사용 가능
	val upper = NotNull.toUpperCase() 
}

 

 

1-4) let를 사용한 null 체크 함수 생성

val email : String? = "kib3388@naver.com"

// email이 null이 아니면 let안에 함수 실행 
email?.let{
	println("my email is ${email}")
}

 

 

 

반응형