1

我正在尝试生成一个object实现具有类型参数的接口,如下例所示:

object HelloWorld : Feature<Intent>

我可以生成实现我的接口的对象,如下面的代码:

val typeSpecBuilder = TypeSpec.objectBuilder("HelloWorld")
typeSpecBuilder.addSuperinterface(
      ClassName(
               "com.example.mylib",
               "Feature"
      )

我怎样才能将 传递type argumentinterface

4

2 回答 2

4

您可以使用parameterizedBy()方法来使用泛型类型。如果 IDE 没有检测到,可以手动导入。

于 2019-11-03T09:58:01.100 回答
2

plusParameter手动导入:

import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.plusParameter

并使用如下:

val typeSpecBuilder = TypeSpec.objectBuilder(feature.featureName)
typeSpecBuilder.addSuperinterface(
      ClassName(
            "com.raqun.icarus.core",
            "Feature"
      ).plusParameter(ClassName("com.example.myawesomeclass", "MyAwesomeClass"))
)
于 2019-12-16T21:15:22.553 回答