Несмотря на то, что я проверил все тесты в коде kotlinpoet, но я не нашел правильного способа реализации нижеуказанных целевых кодов, или я не уверен, использовал ли я лучший подход для этого. Если кто-то может дать некоторые комментарии по этому поводу, это было бы очень признательно.
Эти свойства определены в функции класса
Целевой код 1
val outputState = StateType1(iouValue, ourIdentity, otherParty)
Я использовал приведенные ниже коды для генерации вышеуказанного кода
.addCode(CodeBlock.of("%L",
PropertySpec.builder("outputState", ClassName("","StateType1"))
.initializer(CodeBlock.of("%T(%L, %L, %L)", ClassName("","StateType1"), "iouValue", "ourIdentity", "otherParty"))
.build()))
Но вопрос в том, что этот outputState может быть из разных типов, например, StateType1 имеет 3 параметра, а StateTyp2 может иметь только 1 параметр, как я должен динамически определять свой код kotlinpoet для генерации правильного целевого кода.
Код цели 2
val txBuilder = TransactionBuilder(notary = notary)
.addOutputState(outputState, TEMPLATE_CONTRACT_ID)
Я не нашел эталонный тестовый сценарий, в котором есть такой сценарий, после инициализатора свойства, затем вызовите его функцию напрямую.