본문 바로가기

개발 공부

kotlin null

package com.example.kotlinstudy_basic

import java.util.Locale

fun main() {
    nullExample()
    ignoreNulls("abc")
}

//java에서 NPE (NULL POINTER EXCEPTION)은 run time 에서만 잡을 수 있는 exception이었다
//kotlin에서는 컴파일 단계에서 빨간줄로 오류를 잡아준다.
fun nullExample() {
    var name: String = "kingsCode"
//    var name: String = null      <- 불가(nullAble 이 아님)
    var nullName: String? = null     //<- 가능 (nullAble)

    var nameInUpperCase = name.uppercase(Locale.getDefault())
    println(nameInUpperCase)

    //함수 실행시 변수가 null이면 null반환
    //java코드에서 "String nullNameInUpperCase = (nullName != null) ? nullName.toUpperCase() : null" 을 획기적으로 줄였다.
    var nullNameInUpperCase = nullName?.uppercase(Locale.getDefault())
    println(nullNameInUpperCase)

    //-------------------------------------------------------------------------------------------------------------------------
    // ?:  deport값 설정
    val lastName: String? = null
    //deport값이 "No LastName"
    val fullName = name + " " + (lastName ?: "No LastName")
    println(fullName)
    //exception처리도 가능하다.
    val exceptionLastName = lastName ?: IllegalArgumentException("No LastName")
}

//-------------------------------------------------------------------------------------------------------------------------
//!!
fun ignoreNulls(str: String?) {
    //확실하게 null이 아닐때 사용한다.
    //!!는 null이 들어오게 되면 NPE가 발생됨으로 '?:' 사용을 권장 한다.
    val notNull: String = str!!
    val notNullUpper: String = notNull.toUpperCase()
    println(notNullUpper)
}

'개발 공부' 카테고리의 다른 글

kotlin class - constructor  (0) 2025.11.04
kotlin class - method  (0) 2025.11.04
kotlin의 반복문  (0) 2025.10.30
kotlin의 array 와 list  (0) 2025.10.22
Kotlin의 조건문  (0) 2025.10.18