如何设置Map <string,kclass <out =“” any =“” >>作为属性类型?

时间:2019-04-25 10:03:19

标签: kotlin kotlinpoet

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

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

我在初始化块中初始化myMap。

2 个答案:

答案 0 :(得分:1)

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中对其进行修复。

答案 1 :(得分:0)

Map::class.asClassName()
        .parameterizedBy(String::class.asTypeName(), KClass::class.asClassName().parameterizedBy(TypeVariableName("out Any")))