跳过内容

接口

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()
}