接口¶
KotlinPoet 在处理接口方面没有问题。请注意,接口方法必须始终是 ABSTRACT
。在定义接口时,此修饰符是必需的
val helloWorld = TypeSpec.interfaceBuilder("HelloWorld")
.addProperty("buzz", String::class)
.addFunction(
FunSpec.builder("beep")
.addModifiers(KModifier.ABSTRACT)
.build()
)
.build()
但生成代码时会省略这些修饰符。它们是默认的,因此我们不需要为 kotlinc
包含它们!
interface HelloWorld {
val buzz: String
fun beep()
}
Kotlin 1.4 通过 fun interface
语法添加了对函数式接口的支持。要在 KotlinPoet 中创建此类接口,请使用 TypeSpec.funInterfaceBuilder()
。
val helloWorld = TypeSpec.funInterfaceBuilder("HelloWorld")
.addFunction(
FunSpec.builder("beep")
.addModifiers(KModifier.ABSTRACT)
.build()
)
.build()
// Generates...
fun interface HelloWorld {
fun beep()
}