上下文参数¶
KotlinPoet 支持 Kotlin 的上下文参数特性,该特性允许您向函数和属性添加上下文参数。上下文参数使用 contextParameter()
方法添加
val greet = FunSpec.builder("greet")
.contextParameter("user", String::class)
.addStatement("println(\"Hello, ${'$'}user!\")")
.build()
上面的代码生成
context(user: kotlin.String)
public fun greet() {
println("Hello, $user!")
}
您可以添加多个上下文参数
val loggerType = ClassName("java.util.logging", "Logger")
val configType = ClassName("com.example", "Config")
val logger = ContextParameter("logger", loggerType)
val config = ContextParameter("config", configType)
val processData = FunSpec.builder("processData")
.contextParameter(logger)
.contextParameter(config)
.addStatement("%N.info(\"Processing with config: ${'$'}%N\")", logger, config)
.build()
这会生成
context(logger: com.example.Logger, config: com.example.Config)
public fun processData() {
logger.info("Processing with config: $config")
}
注意: 上下文接收者和上下文参数不能一起使用。