根本原因是eclipse jdt编译器默认不识别lombok注解,需用官方lombok.jar图形化安装并重启eclipse,同时启用项目级注解处理,否则@data无法生成getter/setter等方法。

为什么 @Data 在 Eclipse 里没反应?
根本原因不是 Lombok 没装,而是 Eclipse 的编译器(JDT)默认不识别 Lombok 注解生成的代码,也不会自动注入 getter/setter/toString 等方法。即使你加了 @Data,编辑器里仍然报错“method not found”,运行时也可能抛 NoSuchMethodError——这不是代码写错了,是编译链路没打通。
Eclipse 安装 Lombok 插件的实操步骤
必须用官方提供的 lombok.jar 自动注入,不能只靠 Marketplace 装插件或手动放 jar 包。
- 下载最新版
lombok.jar(官网 lombok.dev,别用 Maven 仓库里的) - 终端执行:
java -jar lombok.jar,会弹出图形界面 - 点 “Specify location” 找到你的
eclipse.exe或Eclipse.app/Contents/MacOS/eclipse - 点 “Install / Update”,它会自动修改
eclipse.ini,加入-javaagent:/path/to/lombok.jar - 重启 Eclipse(不是刷新项目,是彻底关掉再打开)
如果跳过图形安装、只把 jar 放进 plugins 目录或仅添加 build path,@Data 依然不会生效。
项目里还要配对开启注解处理
Eclipse 默认关闭 JSR-269 注解处理器,Lombok 依赖它触发代码生成。
- 右键项目 → Properties → Java Compiler → 勾选
Enable annotation processing - 继续点 Annotation Processing → 勾选
Enable project specific settings - 在
Factory Path里确认没有勾选任何额外 processor(Lombok 不需要额外配置这里)
常见错误:只开了 annotation processing,但没重启 Eclipse;或者用了老版本 Lombok(如 1.16.x),和 JDK 17+ 不兼容,导致注解静默失败。
验证是否真生效:看 class 文件和编辑器提示
不要只信代码补全有没有 getter,要查底层。
- 在类里写
@Data后,右键 → Open Declaration(F3)跳转到该类的 .class 文件反编译视图,能看到生成的getXXX()方法 - 删掉一个字段的 getter,保存后观察是否立刻报红(说明 Lombok 正在实时注入)
- 如果仍报
The method getXxx() is undefined,检查控制台是否有Lombok version mismatch或Could not find or load main class lombok.launch.PatchableLauncher
最常被忽略的是:Eclipse 工作空间里多个项目共用一个 JRE,但只有部分项目开启了 annotation processing;或者用了 Spring Boot DevTools,热替换干扰了 Lombok 的字节码增强时机。










