
文章目录maven集成Data、Getter、SetterSlf4j注解实现不用写logBuilder和Builder.Default报黄 Builder.Default requires an initializing expression ( something;).Builder和new冲突吗Builder报错 com.User builder()无法覆盖com.Person中的builder()有继承关系的类Data会有问题withWith(AccessLevel.PRIVATE)With(AccessLevel.NONE)ValueValue(staticConstructor of)maven集成先要确保idea已经继承lombok插件,如果没有集成那么是无效的。pom.xml中添加代码dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.16.22/versionscopeprovided/scope/dependencyData、Getter、Setterjava类中添加GetterSetter或者加Data注解那么会自动生成get,set和toString等方法以及无参构造器。但是需要注意一点如果有有参构造器无参构造器需要显式声明。Slf4j注解实现不用写log类上加这个注解直接使用log。Builder和Builder.Default这其实就是建造模式。加了这个注解代码的方式还优雅些支持链式操作。User.builder().type(1).build();但是这样会有一个问题如果字段有默认值那么build后会丢失。解决方案使用Builder.Default注解该注解是加在属性上的。代码Builder.DefaultprivateStringtype1;报黄 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方法。with基于当前对象克隆出一个新对象并只修改其中某一个指定的属性。最大的特点是原对象绝对不变所有的修改都会体现在返回的新对象上。可以加在字段上也可以加在类上加在字段上该字段就可以使用with方法加在类上所有字段都可以使用with方法。With(AccessLevel.PRIVATE)这样生成的所有with方法都会变成私有的。With(AccessLevel.NONE)如果你把 With 加在了类上但偏偏不想给其中某个字段生成 with 方法可以在那个特定字段上手动加上 With(AccessLevel.NONE) 来“停用”它。Value一键将一个类变成不可变类。Value(staticConstructor “of”)表示连new方法也不能用了而是要用.of()来实现构建。