我在基于龙目岛的POJO中有一个自定义设置器:
@Data
@Builder
public class User {
private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder();
private String password = null;
public void setPassword(String password) {
Assert.notNull(password);
this.password = ENCODER.encode(password);
}
但是当我使用Lombok生成的生成器时:
User user = User.builder()
.password(password)
.build();
我的自定义设置程序未调用,因此密码未编码。这让我很难过。
当我直接使用它时,当然会调用我的自定义设置器:
public void changePassword(String password, User user) {
user.setPassword(password);
}
如何使Lombok的生成器使用我的自定义设置器?
根据文档@Builder
:仅自己定义足够的框架。特别是,Lombok将生成一个class
UserBuilder
,反映该User
字段的字段和构建器方法,您可以自己提供其中的任何一个或全部。
@Builder
public class User {
private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder();
private String username;
private String password;
public static class UserBuilder {
public UserBuilder password(String password) {
this.password = ENCODER.encode(password);
return this;
}
}
}
我有以下类和映射器来映射它们。如何将地图结构配置为“不”使用龙目岛构建器?(不删除@Builder注释)?使用最新版本的龙目岛和地图结构时,地图结构将在使用@Builder注记时自动使用构建器。我找不到禁用它的方法,因为我需要在@AfterMapping方法中使用实例,因为构建器不会公开所有必需的方法(@SuperBuilder在此用例中是不允许的)
我试图在带有Java8的Maven项目中使用Lombok,但是当我应用@Data注释时,Lombok不会生成任何Getters和Setters。我尝试使用这里提到的Maven编译器插件版本3.5,但没有帮助。有人知道我需要使用哪些版本吗? pom.xml
问题内容: 我用我的代码自动生成和代码。我想添加其他个人并使用它。 例如,我想添加一个方法来验证列表中键的存在: 创建注释后,我将只需要执行以下操作: 问题答案: 一般注意事项 如果您已经在使用Lombok,则可以添加自定义Lombok转换批注和处理程序。 使用和定义存在注释 创建一个处理程序 public class HandleExists extends JavacAnnotationHan
我只是试图将一个基于Maven的项目发送到另一台计算机上,而可怕的是,到处都是红色标记!! 但是,构建得很好。 很快,我注意到Lombok没有为我的类生成getter和setter,尽管和被Eclipse正确识别。
已安装Lombok插件。使用Intellij15。模型的结构显示了getters和setters,但我从thymeleaf得到以下错误。 错误:
我在使用Lombok在IntelliJ中构建我的项目时遇到了麻烦。Lombok似乎可以正常工作,直到我去构建工件,在任何使用Lombok getter的地方都会出现这个错误。 但是,此处显示的代码没有错误: 我启用了注释处理,而lombok是一个依赖项。我似乎不明白为什么会这样,