Lombok @Builder报错:java: 找不到符号builder()方法
解决IntelliJ中Lombok @Builder注解无法生成builder()方法的问题
问题描述
编译时触发如下错误:
java: cannot find symbol symbol: method builder() location: class com.kelompokhoki.EnergyMonitoringWeb.dto.UserDto
涉及的UserDto类代码:
@Data @Builder @NoArgsConstructor @AllArgsConstructor public class UserDto { private int id; private String username; private List<EnergyUsage> energyUsages; private List<TargetUsage> targetUsages; private Date createdOn; }
调用builder的出错代码片段:
private UserDto mapToUserDto(User user) { return UserDto.builder() .id(user.getId()) .username(user.getUsername()) .energyUsages(user.getEnergyUsages()) .targetUsages(user.getTargetUsages()) .createdOn(user.getCreatedOn()) .build(); }
解决方案
检查IntelliJ Lombok插件状态
打开File > Settings > Plugins,搜索Lombok,确认插件已启用,完成后重启IDE。开启注解处理器
进入File > Settings > Build, Execution, Deployment > Compiler > Annotation Processors,勾选Enable annotation processing选项。验证依赖配置
Maven项目需确保pom.xml中包含正确的Lombok依赖:<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>最新稳定版本</version> <scope>provided</scope> </dependency>Gradle项目需在build.gradle中添加:
compileOnly 'org.projectlombok:lombok:最新稳定版本' annotationProcessor 'org.projectlombok:lombok:最新稳定版本'替换为当前Lombok最新稳定版本,确认依赖已同步完成。
清理缓存并重启IDE
执行File > Invalidate Caches... > Invalidate and Restart,清除IntelliJ缓存后重启,排除缓存导致的注解生成异常。检查JDK与Lombok版本兼容性
确保JDK版本与Lombok版本匹配,例如Lombok 1.18.x支持JDK 8至JDK 16,更高版本JDK需对应更新的Lombok版本。调整注解顺序(可选)
尝试将@Builder移至@NoArgsConstructor和@AllArgsConstructor之后,部分场景下注解顺序会影响代码生成:@Data @NoArgsConstructor @AllArgsConstructor @Builder public class UserDto { // 字段定义 }
内容的提问来源于stack exchange,提问作者Benjamin Caessar
相关产品推荐
相关产品推荐

