프로그래밍/안드로이드+코틀린
kotlin 함수 선언 위치 null object reference 오류
이원중
2021. 9. 6. 16:03
반응형
val generateRandomInt = { size: Int -> (0..size).random() }
위와 같은 함수를 선언하고 클래스 내의 init { }에서 위 함수를 실행하려고 하니 오류가 발생했다.
대략적인 코드는 아래와 같다.
init {
...
generateRandomInt(300)
...
}
val generateRandomInt = { size: Int -> (0..size).random() }
그랬더니 아래와 같이 오류가 발생했다.
java.lang.ExceptionInInitializerError
...
Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object kotlin.jvm.functions.Function1.invoke(java.lang.Object)' on a null object reference
분명히 잘못한 게 없다고 생각했는데, 혹시 init { } 전에 함수를 선언했어야 했나하고 함수를 init 위로 올렸더니 정상적으로 작동됐다. 아마 init { } 위에 코드가 있어야 하는 것 같다.
val generateRandomInt = { size: Int -> (0..size).random() }
init {
...
generateRandomInt(300)
...
}
반응형