App/Kotlin
[Android_Kotlin] 지연 초기화 방법 (lateinit, by lazy)
Cune
2022. 5. 4. 21:36
0. Nullable로 선언
-일반적으로 null을 허용하고 null값으로 초기화하는 방법
class Test{
var name: String? = null
init {
name = "김이름"
}
}
1. val ~ by lazy
-val로 변수를 선언하고 변수가 최초 호출될때 {}안에 넣은 값으로 초기화되는 방법
-null 가능
class MainActivity : AppCompatActivity(){
private val binding by lazy { ActivityMainBinding.inflate(layoutInflater) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
}
2. lateinit var
-lateinit var로 변수를 선언만 미리 해놓고 나중에 값을 초기화하는 방법
-null 불가능
(*기본자료형인 Int, Long, Double, Float는 사용 불가능)
class MainActivity : AppCompatActivity(){
private lateinit var binding : ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}