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)
...
}
반응형
'프로그래밍 > 안드로이드+코틀린' 카테고리의 다른 글
안드로이드 모듈은 어떻게 나누는 것이 좋을까? (0) | 2021.11.04 |
---|---|
Diffutil의 areItemsTheSame, areContentsTheSame에 대해 알아보자 (0) | 2021.10.24 |
android:exported 오류 해결하기 (0) | 2021.08.30 |
Jetpack Compose getValue, setValue 에러 (0) | 2021.08.19 |
코틀린에서 제네릭 사용하기 (0) | 2021.07.19 |