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

Kotlin中Lombok @Builder注解失效问题求助

Kotlin项目中Lombok @Builder注解无效的解决方法

核心问题分析

你遇到的问题根源有两点:一是未显式引入Lombok依赖,仅靠插件无法确保依赖正确加载;二是插件版本不匹配(Kotlin插件2.0.0与freefair Lombok插件5.3.0版本差距过大,适配性不足)。

具体解决步骤

  • 统一插件版本,消除适配冲突
    Kotlin 2.0.0对应Gradle 8.x版本,需使用适配的freefair Lombok插件版本,比如8.6:

    plugins {
        id "org.jetbrains.kotlin.jvm" version "2.0.0" // 必须添加Kotlin JVM基础插件
        id "org.jetbrains.kotlin.kapt" version "2.0.0"
        id 'org.jetbrains.kotlin.plugin.lombok' version '2.0.0'
        id("io.freefair.lombok") version "8.6"
    }
    
  • 显式引入Lombok依赖
    即使插件提供了依赖管理,显式声明依赖能避免版本不一致问题,在dependencies块中添加:

    implementation 'org.projectlombok:lombok:1.18.34'
    kapt 'org.projectlombok:lombok:1.18.34'
    
  • 调整Kotlin类定义
    Lombok的@Builder与Kotlin data class的自动生成逻辑存在冲突,若坚持用Lombok Builder,建议去掉data关键字:

    @Builder
    class UserDTO(/*...fields...*/)
    

    若需要data class的特性,更推荐使用Kotlin原生的Builder实现,比如:

    data class UserDTO(val name: String, val age: Int) {
        companion object {
            fun builder() = Builder()
        }
    
        class Builder {
            private var name: String = ""
            private var age: Int = 0
    
            fun name(name: String) = apply { this.name = name }
            fun age(age: Int) = apply { this.age = age }
    
            fun build() = UserDTO(name, age)
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 09:31:00