반응형
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)
  ...
}

 

반응형

+ Recent posts