CommencerCommencez gratuitement

Afficher les messages de validation

Vous avez mis en place des annotations comme contrôle qualité sur les données de ventes de jeux vidéo. Exécutez maintenant la validation sur des données contenant des erreurs pour voir quels messages s’affichent. Les mauvaises données n’ont pas de platform, ont un year antérieur à 1960 et des sales négatives, ce qui enfreint les contraintes spécifiées dans les annotations. Validez les données de vente de jeu vidéo et affichez tous les messages de violation.

Les packages jakarta ont été importés pour vous.

Cet exercice fait partie du cours

<cours>Nettoyer des données en Java</cours>
Voir le cours

Instructions de l’exercice

  • Affichez le message de violation lorsque les données enfreignent une contrainte.
  • Validez la vente de jeu vidéo en utilisant le validator.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

public class VideoGameSale {
    @NotNull(message = "Name cannot be empty")
    private String name;
    @NotNull(message = "Platform cannot be empty")
    private String platform;
    @Min(value = 1960, message = "Year must be greater than 1960")
    private Integer year;
    @Min(value = 0, message = "Sales amount must be positive")
    private Double sales;

    public VideoGameSale(String name, String platform, Integer year, Double sales) {
        this.name = name;
        this.platform = platform;
        this.year = year;
        this.sales = sales;
    }

    public static void main(String[] args) {
        VideoGameSale sale = new VideoGameSale(
                "Super Mario Bros.", null, 1950,
                -29.08);
        Set> violations =
                SalesValidator.validateSale(sale);
        // Print the violation message
        violations.forEach(violation ->
                System.out.println(____.____()));
        if (!violations.isEmpty()) throw new ConstraintViolationException(violations);
    }
}

class SalesValidator {
    private static final ValidatorFactory factory =
          Validation.buildDefaultValidatorFactory();
    private static final Validator validator = factory.getValidator();
    public static Set> validateSale(VideoGameSale sale) {
        // Validate the video game sale
        return ____.____(sale);
    }
}
Modifier et exécuter le code