文章目录
maven集成
先要确保idea已经继承lombok插件,如果没有集成,那么是无效的。
pom.xml中添加代码:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
<scope>provided</scope>
</dependency>
@Data、@Getter、@Setter
java类中添加:
@Getter
@Setter
或者加@Data注解,那么会自动生成get,set和toString等方法,以及无参构造器。
但是需要注意一点,如果有有参构造器,无参构造器需要显式声明。
@Slf4j注解实现不用写log
类上加这个注解,直接使用log。
@Builder和@Builder.Default
这其实就是建造模式。
加了这个注解,代码的方式还优雅些,支持链式操作。
User.builder().type("1").build();
但是这样会有一个问题,如果字段有默认值,那么build后会丢失。
解决方案,使用@Builder.Default注解,该注解是加在属性上的。
代码:
@Builder.Default
private String type="1";
报黄 @Builder.Default requires an initializing expression (’ = something;').
是@Builder和@Builder.Default同时使用时报这个错。
报黄应该是不用管的。
@Builder和new冲突吗
@Builder和new并不冲突,但使用@Builder注解后,默认的无参构造函数会失效。当你在类上使用@Builder注解时,Lombok会为该类生成一个全参数构造函数,这个构造函数用于通过建造者模式创建对象。由于默认的无参构造函数(@NoArgsConstructor)会与@Builder冲突,因此默认的无参构造函数将不再生成。为了能够通过new关键字创建对象,你可以在类上同时使用@NoArgsConstructor和@AllArgsConstructor注解。这样,Lombok会生成无参构造函数和全参构造函数,从而解决冲突问题。
@Builder报错 com.User builder()无法覆盖com.Person中的builder()
一般出现在子类继承父类时。
解决方案:
1、父类指定注解名,避免冲突,如@Builder(builderClassName = “PcUploadRequestBuilder”)。
2、子类使用@SuperBuilder
但是好像还是报错,Builder不带有参数(大概是这么个报错)。
有继承关系的类@Data会有问题
例如两个类都加是有问题的。
解决方案:
1、被继承类加@Data,继承类手动生成get、set方法。
本文介绍如何在IDEA中集成Lombok插件,通过在pom.xml中添加依赖和使用@Data、@Getter、@Setter等注解,自动生成get、set方法及构造器,提高Java开发效率。
2016






