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 ()

Другие вопросы по тегам