728x90
@RequiredArgsConstructor 애노테이션과 유사한 기능을 구현하기 위해 data class와 @JvmOverloads 애노테이션을 사용할 수 있습니다. data class는 Lombok의 @RequiredArgsConstructor와 유사한 불변성을 제공하며, @JvmOverloads는 자동으로 오버로딩된 생성자를 생성할 수 있도록 합니다.
dependencies {
implementation 'org.projectlombok:lombok:1.18.20'
kapt 'org.projectlombok:lombok:1.18.20'
}
@NoArgsConstructor
data class MyClass(val param1: String, val param2: Int) {
@JvmOverloads
constructor(param1: String) : this(param1, 0)
}
위의 예제에서는 data class인 MyClass를 정의하고, 기본 생성자에 param1과 param2를 포함한 프로퍼티를 정의합니다. 또한, @NoArgsConstructor 애노테이션을 사용하여 인자가 없는 기본 생성자를 생성됩니다.
@JvmOverloads 애노테이션을 사용하여 오버로딩된 생성자를 자동으로 생성하도록 할 수 있습니다.
예로들어, MyClass를 생성할 때는 다음과 같이 사용할 수 있습니다.
val obj1 = MyClass("value1", 10)
val obj2 = MyClass("value2")
728x90
댓글