Android - Как сгенерировать функцию безопасного построения типов с помощью библиотеки Kotlin Poet
Я пытаюсь создать один класс kotlin, используя библиотеку поэтов kotlin, которая должна иметь одну функцию и один внутренний статический класс, как указано ниже.
class SampleClass{
class TestClass{
lateinit var id: String
lateinit var name: String
}
fun function1(init: TestClass.() -> Unit) {
val trackPhoneNumberClicked = TestClass().apply(init)
val event = Event.Builder.from(testData.getTestDataById("testdataid")!!)
.apply {
addProperty("id", trackPhoneNumberClicked.id)
addProperty("name", trackPhoneNumberClicked.name)
}
.build()
}
}
Я могу сгенерировать SampleClass и внутренний класс TestClass, но я не могу создать function1 с этим аргументом и телом.
GitHub, как из библиотеки поэта Котлина. https://github.com/square/kotlinpoet
Кто-нибудь может предложить какое-нибудь решение для этого?
1 ответ
Я получил ответ, что, как мы можем генерировать function1(init: TestClass.() -> Unit)
этот тип аргумента в функции. Нам нужно использовать класс LambdaTypeName из kotlin поэта lib.
val buildParameter = ParameterSpec.builder (FUNCTION_PARAMETER_NAME, LambdaTypeName.get (ClassName ("", CLASS_TYPE_NAME), returnType = Unit:: class.asTypeName ())). build ()