Mit Lombok Builder Felder in Super Klasse füllen

Hallo.

hier mein Code :
Java:
class A {
    protected final String name;

    public A(@NonNull String name) {
        this.name = name;
    }
}

@Builder(builderMethodName="build")
Class B extends A{
public B(String name){
        super(name);
}

    public static BBuilder builder(String name) {
        return build().name(name);
    }

Leider kann ich in der Builder Methode nicht auf das name Element in der Super Klasse zugreifen. Hat jemand eine Idee, wie man dieses lösen kann.
 
Okay danke für die Info. Ja war nur ein Beispiel und einfach hier reingecodet. So hier nun mein Code
Java:
public class Parent {

    private final String name;
   
    public Parent(String name) {
        this.name = name;
    }
   
}

Java:
@Builder(builderMethodName = "hiddenBuilder")
public class Child extends Parent{

    public Child(String name) {
        super(name);
    }
   
    public static ChildBuilder builder(String name) {
        return hiddenBuilder().name(name);
    }
}
 
ich kenn das lomboks builder zeugs nicht aber es sieht nach einem "simplen" builder pattern aus.

um deine frage zu beantworten stelle ich dir zwei fragen...
was bedeutet private?
und
was bedeutet final?
 
Danke für deine Antwort :
Ich habe die Parent Klasse mal geändert :
Java:
public class Parent {

    protected String name;
   
    public Parent(String name) {
        this.name = name;
    }
   
}

Der Fehler der aber kommt (habe ich vorhin vergessen zu erwähnen) : Das der default Construtor in der Child klasse nicht definiert ist.
 
Danke für die Antwort.

Meine erste Euphorie ist schon dahin so richtig bekomme ich es nicht hin.
Hier meine Klasse, die ich bauen möchte :

Code:
@Getter
@Slf4j
public class MatchSeries extends VolleyballObject {

    protected TrainerLicenseLevel requiredTrainerLicenseLevel;
    protected RefereeLicenseLevel requiredRefereeLicenseLevel;
    protected Gender requiredGender;
    protected int requiredMinNumberOfPlayer;
    protected int requiredMaxYearOfBirth;

    /**
     * the default constructor <br>
     *
     * @param name
     */
    @Builder
    public MatchSeries(String name) {
        super(name);

        log.debug("create a new {} : {}", getClass().getSimpleName(), name);
        setAcceptedElementType(Match.class);
    }

Ich kann allerdings nur den "name" Parameter setzen. Die restlichen PArameter (z.B requiredTrainerLicenseLevel) kriege ich über den Builder nicht zu fassen

Kann mir jemand noch mal einen Tipp geben
 
Warum verwendest du Lombok überhaupt, wenn du nicht verstehst, was es wie macht?
Natürlich funktioniert das so nicht. Lombok kann auch nicht zaubern und da der Konstruktor nur ein Paramter besitzt, baut er auch nur einen Builder mit einem Parameter.
 
Hallo Danke für deine Antwort. Leider hilft sie mir nicht weiter. Zu deiner ersten Frage warum ich es verwende : Einfach weil ich neue Technologien ausprobieren will und weil ich bisher von Lombok überzeugt war, dass es den Code deutlich kleeiner macht. Nun aber zu meinem Problem - wenn du weißt,dass es nicht funktionieren kann, wie würde es dann richtig sein. Vielen Dank
 
Also ich hab Lombok hier nicht laufen in der Arbeit. Aber ich nehme mal an, dass du eine @AllArgsConstructor brauchst und dann über der Klasse dann ein @Builder.
 

Zurück
Oben