Android/Kotlin

[Kotlin]  lateinit  vs  Delegates.notNull<>()

혀가 길지 않은 개발자 2020. 8. 27. 15:17

lateinit  vs  Delegates.notNull<>()


MainActivity.kt

package com.jwsoft.kotlinproject

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {

    private lateinit var longValue: Long
    private lateinit var intValue: Int
    private lateinit var stringValue: String
    private lateinit var arrLong: ArrayList<Long>
    private lateinit var arrInt: ArrayList<Int>
    private lateinit var arrString: ArrayList<String>

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

    }

}

에러 발생

 

 

 

 

 

MainActivity.kt

package com.jwsoft.kotlinproject

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlin.properties.Delegates

class MainActivity : AppCompatActivity() {

    private var longValue by Delegates.notNull<Long>()
    private var intValue by Delegates.notNull<Int>()
    private lateinit var stringValue: String
    private lateinit var arrLong: ArrayList<Long>
    private lateinit var arrInt: ArrayList<Int>
    private lateinit var arrString: ArrayList<String>

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

    }

}

lateinit 선언 시 원시타입 사용 X

by Delegates.notNull<>() 사용 시 원시타입 사용 O