I have a custom setter in my Lombok-based POJO:
@Data
@Builder
public class User {
private static final PasswordEncoder ENCODER = new BCryptPasswordEncod
Not really an answer to the question, but an edge case that made me to spend quite some time to find the issue.
If you have Builder
with custom setter on a field with Builder.Default
value, the name of the field in the generated builder class is not the same as the original field. In fact you would have two fields instead of one: password$value
and password$set
.
Nevertheless you can use them in the custom setter in this way:
public UserBuilder password(String password) {
this.password$value = ENCODER.encode(password);
this.password$set = true;
return this;
}
The tricky part is that if you use the origianl field name, Intellij IDEA doesn't warn you about that (as if everything is fine, but of course it won't compile). Already submitted a bug report to the plugin.