kotlin data class 사용 시 No argument provided for a required parameter 오류 해결

jaycee·2023년 11월 30일

오류 발생

스프링 배치 job 실행 시 reader job bean을 만들 때 아래 오류가 발생함.

No argument provided for a required parameter: parameter #0 empNo of fun `<init>`(kotlin.String, kotlin.String?, kotlin.String?, kotlin.String?, kotlin.Boolean?, kotlin.Boolean?, kotlin.String?, kotlin.String?): kr.co.myAplication.batch.domain.emp.domain.Emp

해결

empNo가 non-nullable 필드인데, 빈값으로 초기화함.

원본 코드

data class Emp(
    val empNo: String,
    val empName: String? = null,
    val email: String? = null,
)

변경 코드

data class Emp(
    val empNo: String = "",
    val empName: String? = null,
    val email: String? = null,
)

원인

코틀린에서 data class 초기화 과정에서 오류가 나는 것 같은데 더 자세한 건 나중에 찾아보자.....

Caused by: java.lang.IllegalArgumentException: No argument provided for a required parameter: parameter #0 empNo of fun `<init>`(kotlin.String, kotlin.String?, kotlin.String?, kotlin.String?, kotlin.Boolean?, kotlin.Boolean?, kotlin.String?, kotlin.String?): kr.co.myApplication.batch.domain.emp.domain.Emp
	at kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:176)
	at kotlin.reflect.jvm.internal.KCallableImpl.callBy(KCallableImpl.kt:111)
	at org.springframework.beans.BeanUtils$KotlinDelegate.instantiateClass(BeanUtils.java:893)
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:196)

https://sinna94.tistory.com/entry/Kotlin-Reflection-%EA%B3%BC-%EC%83%9D%EC%84%B1%EC%9E%90

profile
오늘도 하나 배웠다.

0개의 댓글