带有类型参数的 Kotlin Poet 超级接口
Kotlin Poet super interface with type argument
我正在尝试生成一个 object
,它实现了一个带有类型参数的接口,如下例所示:
object HelloWorld : Feature<Intent>
我可以像下面的代码一样生成实现我的接口的对象:
val typeSpecBuilder = TypeSpec.objectBuilder("HelloWorld")
typeSpecBuilder.addSuperinterface(
ClassName(
"com.example.mylib",
"Feature"
)
如何将 type argument
传递给 interface
?
您可以使用parameterizedBy()
方法来使用泛型。如果IDE检测不到,可以手动导入。
手动导入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"))
)
我正在尝试生成一个 object
,它实现了一个带有类型参数的接口,如下例所示:
object HelloWorld : Feature<Intent>
我可以像下面的代码一样生成实现我的接口的对象:
val typeSpecBuilder = TypeSpec.objectBuilder("HelloWorld")
typeSpecBuilder.addSuperinterface(
ClassName(
"com.example.mylib",
"Feature"
)
如何将 type argument
传递给 interface
?
您可以使用parameterizedBy()
方法来使用泛型。如果IDE检测不到,可以手动导入。
手动导入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"))
)