불로구

코틀린(Kotlin) - lateinit 본문

프로그래밍/코틀린

코틀린(Kotlin) - lateinit

맹이맹이 2021. 4. 12. 15:00
반응형

lateinit란

-> 초기값을 나중에 셋팅하는 키워드

-> 초기값이 셋팅 되지 않았을 때 호출 시 에러발생

 

제약

-> val이 아닌 var사용

-> null허용 프로퍼티에서 사용 불가

-> 클래스 몸체, Top-Level, 함수 내부 선언한 프로퍼티에사용

-> 주 생정자에서 사용 불가

-> 기본타입이 아닌 참조타입가능

-> getter/setter를 사용하지 않은 프로퍼티에 사용

-> 클래스 몸체, Top-Level, 함수 내부에 선언한 프로퍼티에 사용할 수 있다. 주 생성자에서는 사용할 수 없다.

    lateinit var data1 : String
    lateinit var data2 : Integer
lateinit var lateCar : Car

    class Car(var number:Int){

    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //Log.d("MainActivicy", "latecar : " + lateCar.number) //초기화전에 먼저오면 에러
        lateCar = Car(10)
        Log.d("MainActivicy", "latecar : " + lateCar.number) //정상
    }

 

반응형
Comments