簡介
KotlinPoet是一個用於生成.kt原始檔的Kotlin和Java的 API。原始檔生成在進行諸如註釋處理或與後設資料檔案(例如,資料庫模式,協議格式)互動等操作時可能是有用的。 通過生成程式碼,您不需要編寫引用,同時也為後設資料保留真實的單一來源。
示例
這是一個helloworld類:
class Greeter(name: String) {
val name: String = name
fun greet() {
println("Hello, $name")
}
}
fun main(args: Array<String>) {
Greeter(args[0]).greet()
}
複製程式碼
使用KotlinPoet生成它:
val greeterClass = ClassName.get("", "Greeter")
val kotlinFile = KotlinFile.builder("", "HelloWorld")
.addType(TypeSpec.classBuilder("Greeter")
.primaryConstructor(FunSpec.constructorBuilder()
.addParameter(String::class, "name")
.build())
.addProperty(PropertySpec.builder(String::class, "name")
.initializer("name")
.build())
.addFun(FunSpec.builder("greet")
.addStatement("println(%S)", "Hello, \$name")
.build())
.build())
.addFun(FunSpec.builder("main")
.addParameter(ArrayTypeName.of(String::class), "args")
.addStatement("%T(args[0]).greet()", greeterClass)
.build())
.build()
kotlinFile.writeTo(System.out)
複製程式碼
KotlinPoet完整版 API文件,靈感來源於javaPoet。
Gradle整合方式:
compile 'com.squareup:kotlinpoet:0.2.0'