Как установить Map <String, KClass <out Any >> в качестве типа свойства? - PullRequest
0 голосов
/ 25 апреля 2019

Как я могу создать строку кода ниже, используя Kotlinpoet?

val myMap:Map<String, KClass<out Any>>

Я инициализирую myMap в блоке init.

Ответы [ 2 ]

1 голос
/ 25 апреля 2019
Map::class.asClassName()
    .parameterizedBy(
        String::class.asClassName(),
        KClass::class.asClassName().parameterizedBy(WildcardTypeName.producerOf(ANY))
    )

Убедитесь, что вы добавили следующий импорт:

import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy

Существует ошибка IDE, которая препятствует автоматическому импорту функций расширения, объявленных в объектах-компаньонах, она должна быть исправлена ​​в 1.3.40.

0 голосов
/ 25 апреля 2019
Map::class.asClassName()
        .parameterizedBy(String::class.asTypeName(), KClass::class.asClassName().parameterizedBy(TypeVariableName("out Any")))
...