前言
在Java开发中,Lombok通过其简洁的注解极大地简化了繁琐的模板代码编写,特别是@Data
和@Builder
这两个注解,它们分别用于自动生成getter/setter、equals/hashCode/toString方法和构建者模式。然而,当这两个注解共存于同一类时,可能会引发构造方法冲突的难题。本文将深入解析这一问题的根源,并通过代码实例展示多种解决方案,助你轻松驾驭Lombok,避免常见的陷阱。
问题缘起
在使用@Data
注解时,它会自动引入@RequiredArgsConstructor
,为所有带有final修饰符或未初始化的字段生成一个含参构造函数。而@Builder
注解同样需要一个全参数的构造函数来配合其内部构建逻辑。两者的共存导致了构造方法的生成逻辑冲突,进而编译失败。
解决策略
方案一:结合@NoArgsConstructor
代码示例:
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
public class