I am using the new Builder.Default feature of Lombok version 1.16.16. I would like to configure a class such that an attribute takes a default value if the attribute is not explicitly set via the builder, or if the attribute is set to null by the builder.
Case 1: Attribute is not set
MyClass.Builder().build();
Case 2: Attribute is set to null
MyClass.Builder().myAttribute(null).build();
In both cases I want a default value to be set. The background is that the class will be built based on the results of a database query.
Below is the annotated class
@Builder
@NonFinal
public class MyClass {
@Builder.Default
private String myAttribute = "-";
}
Is there any way to configure the class such that attributes are set to a default value even if explicitly set to null (Case 2)?
No, lombok
will not help you there. You set the value
to null
, then this attribute
will be null
.
It's a good idea to look at the generated class
so you can understand how lombok
works.
One workaround come to my mind.lombok
uses all-args-constructor
to create you class from the BuilderClass
.
So, I think if you create the constructor
by your self and add your logic by checking if this value is null then use the default.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With