Как мне сформировать список свойств типа с моим собственным типом
Я пытаюсь сформировать ниже окончательный код Котлин
val participants: List<AbstractParty>
Я попытался использовать приведенный ниже код в kotlinpoet, но он показывает ошибку, я думаю, что это не правильно, но не знаю, как мне это исправить. Кто-нибудь может помочь? Благодарю.
PropertySpec.builder("participants", List<ClassName("AbstractParty">)
2 ответа
Решение
В зависимости от того, есть ли у вас ссылка на класс или вам нужно создать его имя из Strings, вы можете сделать это:
PropertySpec.builder("participants",
ParameterizedTypeName.get(List::class, AbstractParty::class)
).build()
Или это:
PropertySpec.builder("participants",
ParameterizedTypeName.get(
List::class.asClassName(),
ClassName("some.pckg.name", "AbstractParty"))
).build()
Подсказка для выяснения такого рода вещей: KotlinPoet имеет довольно обширные тесты, вы можете найти примеры почти всего там.
Вы можете использоватьparameterizedBy()
расширение:
PropertySpec.builder(
"participants",
List::class.asClassName().parameterizedBy(ClassName("some.pckg.name", "AbstractParty")
).build()