[Kotlin] 코틀린에서 null을 다루는 방법

말하는 감자·2025년 5월 6일
0
post-thumbnail

자바 개발자를 위한 코틀린 입문

2강. 코틀린에서 null을 다루는 방법

📌 Kotlin에서의 null 체크

📍 Java의 String.startWith()함수 만들어보기

Java

Kotlin

📌 Safe Call과 Elvis 연산자

코틀린에서는 null이 가능한 타입을 완전히 다르게 취급한다!
null이 가능한 타입만을 위한 기능은 없나?!

📍 Safe Call

.?
null이 아니면 실행하고, null이면 실행하지 않는다. (그대로 null)

null이 들어갈 수 있는 변수에 대해서는 .을 바로 쓸 수 없다고 에러가 난다.

Safe Call(?.) 을 사용하면 null이 아닌 경우에만 호출하게 된다.

str이 null이면 null을 반환한다.

📍 Elvis 연산자

?:
앞의 연산 결과가 null이면 뒤의 값을 사용한다.

📍 Safe Call과 Elvis 연산자를 이용해 코드를 보다 코틀린 스럽게 바꿔보기

📌 널 아님 단언!!

!!.
nullable type이지만, 아무리 생각해도 null이 될 수 없는 경우에 사용한다.
이 변수는 절대 null이 아니라는 뜻이다.

null이 들어오면 런타임 에러가 발생한다.
정말 null이 아닌 게 확실한 경우에만 널 아님 단언!!을 사용해야 한다.

📌 플랫폼 타입

코틀린에서 자바 코드를 가져다 사용할 때 어떻게 처리될까?

Person객체의 name@Nullable 어노테이션이 있으면 컴파일 오류가 발생한다.

@NotNull 어노테이션이 있을 때는 괜찮다.
이렇게 null에 대한 어노테이션 정보를 코틀린이 이해한다.

하지만 @Nullable@NotNull이 없다면 코틀린에서는 이 값이 nullable인지 non-nullable인지 알 수가 없다.

📍 플랫폼 타입

코틀린이 null 관련 정보를 알 수 없는 타입을 말한다.
Runtime 시 Exception이 날 수 있다.

그래서 코틀린에서 자바 코드를 사용할 때는 null 관련 정보를 꼼꼼하게 작성해줘야 한다.

애당초 그런게 작성되어 있지 않은 라이브러리를 가져다 써야한다면 그 라이브러리를 열어서 이 값에 null이 들어갈 수 있는건지, 없는건지 확인을 하면 좋다.

그 다음에 최초의 코틀린에서 자바 라이브러리를 가져다 쓴 지점을 랩핑해서 단일 지점으로 만듦으로써 추후에 이슈가 났을 때 보다 쉽게 대응할 수 있게 만들면 좋다.

업로드중..

(마지막 문장 무슨 말인지 이해가 안가서 Chat GPT에게 설명해달라고 함... 코틀린에서 관리할 수 있도록 공통 함수를 만들라는 것으로 이해했다.)


📑 출처

  • 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) (인프런/최태현)
profile
나는 말하는 감자다

0개의 댓글