La valeur par défaut à lombok. Comment init par défaut avec à la fois constructeur et entrepreneur

J'ai un objet

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {
    private int id;
    private String nick;
    private boolean isEmailConfirmed = true;
}

Et je l'initialiser dans deux façons

UserInfo ui = new UserInfo();
UserInfo ui2 = UserInfo.builder().build();

System.out.println("ui: " + ui.isEmailConfirmed());
System.out.println("ui2: " + ui2.isEmailConfirmed());

Ici, elle est sortie

ui: true
ui2: false

Il semble que le constructeur n'a pas de valeur par défaut. - Je ajouter @Builder.Default annotation pour mon bien et mon objet ressemble maintenant à ceci

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo { 
    private int id;
    private String nick;
    @Builder.Default
    private boolean isEmailConfirmed = true;
}

Ici est sortie de la console

ui: false
ui2: true

Comment puis-je faire à la fois être true?

On dirait qu'il est un problème connu (voir github.com/rzwitserloot/lombok/issues/1347).

OriginalL'auteur Vitalii | 2017-12-19