@Data
注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 等方法,注解后在编译时会自动加进去
@Build
@Build即可加到类上,也可以加到方法上。将其加到类上,相当于包含类所有属性的私有构造方法,且构造方法上加上 @Builder 注解。
@Build加到类上,先实例化内部类对象并返回,然后为调用内部类的方法为内部类的属性赋值,build()方法就是将内部类的属性值传入类构造器中,实例化一个类对象,避免一个类出现过多构造函数。
@Data和@Builder一起使用时,反编译的文件中不会有无参构造方法,故在使用时要加上@AllArgsConstructor、@NoArgsConstructor这两个注解。
@NoArgsConstructor
注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor
注解在类上;为类提供一个全参的构造方法