1

如何使用 Kotlinpoet 生成以下代码行?

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

我在 init 块中初始化 myMap 。

4

2 回答 2

4
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 中得到修复。

于 2019-04-25T14:47:18.090 回答
1
Map::class.asClassName()
        .parameterizedBy(String::class.asTypeName(), KClass::class.asClassName().parameterizedBy(TypeVariableName("out Any")))
于 2019-04-25T11:01:12.000 回答