1

How can I generate below line of code using Kotlinpoet?

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

I initialize myMap in init block.

Ankit Kumar
  • 339
  • 2
  • 5

2 Answers2

6
Map::class.asClassName()
    .parameterizedBy(
        String::class.asClassName(),
        KClass::class.asClassName().parameterizedBy(WildcardTypeName.producerOf(ANY))
    )

Make sure you add the following import:

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

There's an IDE bug that prevents extension functions declared inside companion objects from being auto-imported, it should get fixed in 1.3.40.

Egor
  • 39,695
  • 10
  • 113
  • 130
1
Map::class.asClassName()
        .parameterizedBy(String::class.asTypeName(), KClass::class.asClassName().parameterizedBy(TypeVariableName("out Any")))
Ankit Kumar
  • 339
  • 2
  • 5