A partir de la v1.16.16, vous pouvez spécifier la valeur par défaut en ajoutant l'annotation `` @ Builder.Default ''.
@Builder
public class Coupon {
@Builder.Default
private UUID id = UUID.randomUUID();
private String name;
private String description;
private ZonedDateTime expireDate;
}
À propos, Spring Boot a été importé dans la v1.5.3, donc si vous utilisez une version antérieure, vous devez spécifier explicitement la version.
[@Builder] de Lombok (https://projectlombok.org/features/Builder.html) est une annotation qui génère automatiquement une classe de générateur pour une classe spécifiée.
@Value
@Builder
public class Coupon {
private UUID id;
private String name;
private String description;
private ZonedDateTime expireDate;
}
Coupon coupon = Coupon.builder()
.name("Coupon surpris")
.description("Coupon surpris")
.expireDate(ZonedDateTime.parse("2017-01-30T23:59:59+09:00", DateTimeFormatter.ISO_OFFSET_DATE_TIME))
.build();
Cependant, la propriété pour laquelle aucune valeur n'est spécifiée dans l'appel du générateur sera `` null ''. Si vous essayez de définir une valeur par défaut autre que null, cela ne fonctionnera pas même si vous l'écrivez dans la classe cible comme suit.
@Value
@Builder
public class Coupon {
private UUID id = UUID.randomUUID(); //Ne s'applique pas
private String name = ""; //Ne s'applique pas
private String description;
private ZonedDateTime expireDate;
}
Par conséquent, cette fois, je vais vous présenter comment définir correctement la valeur par défaut.
Pour définir la valeur par défaut, décrivez la classe de générateur avec la convention de dénomination `` nom de classe cible + générateur '' comme indiqué ci-dessous. Le reste est bien complété par Lombok.
@Value
@Builder
public class Coupon {
private UUID id;
private String name;
private String description;
private ZonedDateTime expireDate;
public static class CouponBuilder {
private UUID id = UUID.randomUUID();
private String name = "";
}
}
Recommended Posts