[KOTLIN] NULL SAFTY / NULL 처리방법

2022. 5. 30. 09:42·KOTLIN
728x90

Kotlin의 타입시스템은 null references 위험을 제거하는 것을 목표로 함


Safe Call 연산자

fun main() {
    val name : String? = null
    val len = name?.length
    val upperName = name?.uppercase()
    println("${upperName}이고 이름자리는 ${len}자리입니다.")
}
  • ?.로 표현되며 nullable한 변수를 검사하여 null일 경우 NullPointException을 발생시키지 않고 그대로 null을 반환함

엘비스 연산자

fun main() {
    val name : String? = null
    val len = name?.length?:0
    val upperName = name?.uppercase()?:"no name"
    println("${upperName}이고 이름자리는 ${len}자리입니다.")
}
  • ?: 로 표현되며 ?:기준 왼쪽의 값이 null이 아닐경우 해당 값이 리턴되고, null일 경우 오른쪽 값을 리턴

Safe Cast 연산자

val name : String? = null
val upperName : String? = name as? String
  • as? 로 표현되며 객체가 target타입이 아닌 경우 ClassCastException을 발생시키지 않고 null을 반환함

Non Null 확정자

fun main() {
    val name : String? = null
    val upperName = name!!.uppercase()
    //NPE 발생
}
  • !!로 표현되며 해당 객체가 null임을 확정하는 것이므로 null체크 없이 컴파일되고, null일 경우 NullPointException이 발생
저작자표시

'KOTLIN' 카테고리의 다른 글

[KOTLIN] SUSPEND 함수  (0) 2022.06.06
[KOTLIN] 코루틴  (0) 2022.06.01
[KOTLIN] LATEINIT / LAZY  (0) 2022.05.22
[KOTLIN] 시퀀스 (SEQUENCES)  (0) 2022.05.22
[KOTLIN] 확장함수  (0) 2022.05.22
'KOTLIN' 카테고리의 다른 글
  • [KOTLIN] SUSPEND 함수
  • [KOTLIN] 코루틴
  • [KOTLIN] LATEINIT / LAZY
  • [KOTLIN] 시퀀스 (SEQUENCES)
집한구석
집한구석
  • 집한구석
    tgyun615.info
  • 전체
    오늘
    어제
    • 카테고리 (183)
      • JAVA (38)
      • SPRING (15)
      • KOTLIN (23)
      • NETTY (1)
      • DEVOPS (3)
      • DOCKER (7)
      • KUBERNETES (2)
      • JAVASCRIPT (1)
      • SPLUNK (3)
      • ELK (7)
      • KAFKA (2)
      • GO (4)
      • ALGORITHM & DATA STRUCTURE (9)
      • IDE (5)
      • OS (16)
      • NETWORK (14)
      • GCP (2)
      • AWS (2)
      • DATABASE (10)
      • CLEANCODE (7)
      • OTHER (12)
  • 최근 글

  • 태그

    java
    클린코드
    Elk
    SQL
    docker
    이펙티브코틀린
    코틀린
    JPA
    ElasticSearch
    AWS
    자바
    splunk
    go
    프로그래머스
    cleancode
    Spring
    엘라스틱서치
    Kafka
    이펙티브 코틀린
    IntelliJ
  • 링크

    • github
    • linkedin
    • resume
  • hELLO· Designed By 정상우. v4.10.3
집한구석
[KOTLIN] NULL SAFTY / NULL 처리방법
상단으로

티스토리툴바