【问题标题】:Kotlin Poet super interface with type argument带有类型参数的 Kotlin Poet 超级接口
【发布时间】:2019-12-17 05:37:42
【问题描述】:

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

object HelloWorld : Feature<Intent>

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

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

如何将type argument 传递给interface

【问题讨论】:

    标签: android kotlin code-generation kotlinpoet


    【解决方案1】:

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

    【讨论】:

      【解决方案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"))
      )
      

      【讨论】:

        猜你喜欢
        • 2022-11-17
        • 1970-01-01
        • 1970-01-01
        • 2020-03-12
        • 1970-01-01
        • 1970-01-01
        • 2018-05-04
        • 1970-01-01
        • 2023-03-31
        相关资源
        最近更新 更多