5 votes

Combinaison de @Delegate et @Builder dans lombok

J'ai une classe Acc.java provenant de Third party jar comme suit

@Data
public class Acc{

private String a;

private String b;

}

J'utilise la classe Acc dans ma classe et Bcc.java comme variable d'instance. Je veux créer un constructeur pour les variables d'instance Acc dans Bcc.java en utilisant lombok.

J'ai essayé de la manière suivante

@Data
@Builder
public class Bcc{

@Delegate
private Acc acc;
}

Dans le code ci-dessus, je vois Bcc.builder().acc() qui est un constructeur ayant une méthode pour construire un objet Acc.

Mais j'ai besoin de Bcc.builder.a("").b("").build(). "a" et "b" sont qui font partie de la classe Acc.java.

Quelqu'un peut-il m'aider ?

0voto

Marcus Chiu Points 3

Je ne pense pas que Lombok supporte ça tout de suite. Mais voici du code pour le faire.

@Data
@Builder
public class Bcc {

    @Delegate
    private Acc acc;

    public static class BccBuilder {

        public Bcc.BccBuilder a(String a) {
            if (this.acc == null) this.acc = new Acc();
            this.acc.setA(a);
            return this;
        }

        public Bcc.BccBuilder b(String b) {
            if (this.acc == null) this.acc = new Acc();
            this.acc.setB(b);
            return this;
        }
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X