변명은 만개 결과는 한개

[Kotlin] null (1) : null 처리방법 본문

공부/Kotlin

[Kotlin] null (1) : null 처리방법

노마십가 2020. 11. 16. 23:56
728x90
반응형

null 처리방법

Null 처리

자바

  • (기본적으로)null을 허용한다
  • Annotation 으로 @NonNull, @Nullable 지정 가능
public void set(@NonNull String a, @Nullable String b) {
    // ...
}

Annotation을 사용할 수 있으나 아래 코드 또한 사용 가능

set(null, null);

코틀린

  • (기본적으로)null을 허용하지 않음
  • null을 명시적으로 나타내기 위해서 ?을 추가해야한다
  • 자바와 달리 IDE 에서 null을 사용할 수 없음을 즉시 알려줌
fun set(a: String, b: String?) {
    // ...
}

null을 허용하지 않은 변수인 a 에 null을 대입하면 IDE 단에서 즉시 오류가 발생함. 아래와 같은 코드 사용 불가

set(null, null)

Null 체크 - safe Calls

기존 자바에서처럼 if 문을 쓸 수 있으나

var temp: String? = null
var size = 0
if (temp != null) {
    size = temp.length
}

아래와 같이 safe call을 사용하면 더 편하다

var temp: String? = null
val size = temp?.length
// output: null

safe calls 의 장점

기존 java의 null check

if (aaa != null && aaa.bbb != null && aaa.bbb.ccc != null) {
    return aaa.bbb.ccc.name;
}
return null;

코틀린의 null check

return aaa?.bbb?.ccc?.name  // 어느 하나라도 null 인 경우 null 리턴
728x90
반응형

'공부 > Kotlin' 카테고리의 다른 글

[Kotlin] null (3) : 유용한 null 처리방법  (0) 2020.11.18
[Kotlin] null (2) : null 예외처리  (0) 2020.11.17
[Kotlin] Return, Jumps, This Expression  (0) 2020.11.15
[Kotlin] Lambdas  (0) 2020.11.14
[Kotlin] Control Flow  (0) 2020.11.13