Kotlin
Kotlin 지연초기화 그리고 Null Exception
어쩌다 개발자 주인장
2023. 11. 27. 21:00
지연 초기화
클래스 설계할 때 초기의 값을 정의하기 난처하거나 저사양으로 제한되어있는 환경에서 메모리를 효율적으로 사용하려고 할 때 주로 사용된다.
lateinit var 변수명 : 타입
.isInitialized를 통해 값이 초기화되었는지 boolean형태인 true/false로 초기화 여부를알 수 있다.
사용할 때는 값이 아니라 참조형태로 사용해야하기 때문에 this::을 붙인다
if(this::변수명.isInitialized) {
}
val 상수명 by lazy {}
lateinit var 변수명 : 변수타입
val 상수명 by lazy {초기화}
Null Safety
Null Exception
var 변수명:String? = null // ? 변수가 null일 수 있을 때 null을 갖을 수 있게끔 해준다.
${변수명?.length} // ?. 변수가 null이 아니라면 length를 반환하고 null일 경우 null을 반환한다.
${변수명?.length ?: "초기화하세요"} // ?: 앨비스 연산자 null 일 경우 뒤에 문장 실행