You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle Kotlin中如何替代Groovy的each{}迭代方法?

Gradle Kotlin DSL中替换Groovy each{}的Protobuf配置方案

原Groovy代码里的each是Groovy专属的集合迭代扩展函数,在Gradle Kotlin DSL中需要替换为Kotlin标准库的forEach方法。同时还要适配Kotlin DSL在配置内置生成器时的语法差异,以下是完整的适配后代码:

protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc"
    }
    generateProtoTasks {
        all().forEach { task ->
            task.builtins {
                create("java") {
                    option("lite")
                }
            }
        }
    }
}

关键改动说明:

  • 迭代逻辑:把all().each { ... }替换为all().forEach { ... },forEach是Kotlin中遍历集合的标准方法,和Groovy的each功能完全一致。
  • 内置生成器配置:Groovy里java { ... }的隐式创建方式,在Kotlin DSL中需要通过create("java") { ... }显式调用创建方法——这是因为Kotlin DSL的类型系统更严格,不支持Groovy的隐式闭包解析逻辑。

内容的提问来源于stack exchange,提问作者FishBone000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:44:55