求助:Lombok @Data注解无法为Product类生成Getter/Setter
Lombok @Data注解无法生成Getter/Setter的问题排查与机制解析
Lombok生成Getter/Setter的核心机制
- Lombok是编译期注解处理器,只在代码编译阶段工作。当你编译Java类时,Lombok会扫描带有
@Data、@Getter/@Setter等注解的类,直接在编译后的字节码文件中插入对应的Getter、Setter、toString等方法,不会修改你编写的.java源文件。 @Data是一个组合注解,包含了@Getter、@Setter、@ToString、@EqualsAndHashCode、@RequiredArgsConstructor的功能。只要类上标注了@Data,非static的字段都会自动生成Getter方法,非final的字段会自动生成Setter方法。
问题排查与解决步骤
1. Eclipse未安装Lombok插件
Eclipse默认不支持识别Lombok编译期生成的方法,必须安装对应插件:
- 下载与你依赖版本一致的Lombok jar包,双击jar包,选择你的Eclipse安装路径,点击
Install/Update后重启Eclipse。 - 或者在Eclipse Marketplace搜索「Lombok」,找到Lombok Plugin安装完成后重启IDE。
2. 字段修饰符的特殊情况
你的Product类字段使用public修饰,Lombok依然会生成对应的Getter/Setter方法,但Eclipse可能因为字段本身可直接访问,不会主动提示这些方法——但编译后的字节码里确实存在这些方法。如果编译时直接报错,那还是插件或配置的问题。
3. 构建工具依赖配置错误
检查Maven/Gradle的Lombok依赖是否正确配置:
Maven依赖示例:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <scope>provided</scope> </dependency>
Gradle依赖示例:
compileOnly 'org.projectlombok:lombok:1.18.30' annotationProcessor 'org.projectlombok:lombok:1.18.30'
注意:Gradle必须同时添加annotationProcessor依赖,否则Lombok的注解处理器无法生效。
4. Eclipse注解处理器未启用
- 打开Eclipse的
Window > Preferences > Java > Compiler > Annotation Processing,勾选「Enable annotation processing」。 - 切换到
Factory Path选项卡,添加Lombok的jar包,点击Apply后重启Eclipse。
5. 项目未重新编译
修改配置后,右键项目选择Project > Clean,再重新编译项目,确保Lombok重新生成对应的字节码方法。
内容的提问来源于stack exchange,提问作者Le Trong Hung FPL HCM
相关产品推荐
相关产品推荐

