Package lombok.experimental
Annotation Type SuperBuilder
@Target(TYPE)
@Retention(SOURCE)
public @interface SuperBuilder
The SuperBuilder annotation creates a so-called 'builder' aspect to the class that is annotated with
@SuperBuilder, but which works well when extending.
It is similar to @Builder, except it is only legal on types, is less configurable, but allows you to extends other builder-able classes.
All classes in the hierarchy must be annotated with @SuperBuilder.
Lombok generates 2 inner 'builder' classes, which extend the parent class' builder class (unless your class doesn't have an extends clause).
Lombok also generates a static method named builder(), and a protected constructor that takes 1 argument of the builderclass type.
The TBuilder class contains 1 method for each parameter of the annotated
constructor / method (each field, when annotating a class), which returns the builder itself.
The builder also has a build() method which returns a completed instance of the original type.
Complete documentation is found at the project lombok features page for @SuperBuilder.
- See Also:
Singular
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description java.lang.StringbuilderMethodNamejava.lang.StringbuildMethodNamebooleantoBuilderIftrue, generate an instance method to obtain a builder that is initialized with the values of this instance.
-
Element Details
-
builderMethodName
java.lang.String builderMethodName- Returns:
- Name of the method that creates a new builder instance. Default:
builder. If the empty string, suppress generating thebuildermethod.
- Default:
- "builder"
-
buildMethodName
java.lang.String buildMethodName- Returns:
- Name of the method in the builder class that creates an instance of your
@Builder-annotated class.
- Default:
- "build"
-
toBuilder
boolean toBuilderIftrue, generate an instance method to obtain a builder that is initialized with the values of this instance. In this case, all superclasses must also havetoBuilder=true.- Returns:
- Whether to generate a
toBuilder()method.
- Default:
- false
-